使用takeWhile而不是findAll有什么好处,反之亦然?因为两者输出相同的结果。 takeWhile和findAll之间的确切区别是什么。
例如:
List age = [1,2,5,7,4,9,93,13]
使用TakeWhile:
age.takeWhile{it>9}
它会输出:[93,13]
使用findAll
age.findAll{it>9}
它会输出:[93,13]
答案 0 :(得分:2)
takeWhile一直工作,直到找到第一个违反给定条件的元素。 但是findAll在完整列表上运行并返回与条件匹配的所有元素。
举个例子,我们有一个清单:
List age = [1,2,5,17,4,9,93,13]
如果我们在以下条件下运行takeWhile:
age.takeWhile{it<9}
将输出:
[1, 2, 5]
虽然4&lt; 9,但是在索引3处遇到了17,导致循环在此处中断。
但如果你在上面运行findAll:
age.findAll{it<9}
它将返回列表中小于9的所有元素:[1, 2, 5, 4]