Kotlin中的takeWhile()和filter()方法之间的区别

我正在做一个练习,我发现我可以使用takeWhile()filter()方法得到相同的结果,所以我想知道什么时候我必须使用一个或另一个。

谢谢你,任何你想与我分享的来源将受到欢迎。

两者之间的区别是filter()方法返回一个列表,其中包含匹配特定条件的元素。 而takeWhile()方法也返回一个列表,其中包含与特定条件相匹配的元素,但只考虑列表中的第一个元素。

一个例子是:

 val numbers = arrayOf(3, 3, 3, 9, 1, 4, 5, 8, 96, 3, 66, 3, 3, 3) println("*** takeWhile()") println(numbers.takeWhile { it == 3 }) println("*** filter()") println(numbers.filter { it -> it == 3 }) 

这会给你:

 *** takeWhile() [3, 3, 3] *** filter() [3, 3, 3, 3, 3, 3, 3]