数据源:val list = listOf(1, 2, 3, 4, 5, 6)
any:如果至少有一个元素符合给出的判断条件,则返回true。
操作:list.any{it%2==0} 结果:true
操作:list.any{it>10} 结果:false
all:如果全部的元素符合给出的判断条件,则返回true。
操作:list.all{it<10} 结果:true
操作:list.all{it%2 == 0} 结果:false
count:返回符合给出判断条件的元素总数。
操作:list.count{it%2==0}
结果:3
fold:在一个初始值的基础上从第一项到最后一项通过一个函数累计所有的元素。
操作:list.fold(4){total,next -> total + next}
结果:25
foldRight:与 fold 一样,但是顺序是从最后一项到第一项。
操作:list.foldRight(5){total,next -> total + next}
结果:26
forEach:遍历所有元素,并执行给定的操作。
操作:list.forEach{print("===$it===,")}
结果:===1===,===2===,===3===,===4===,===5===,===6===,
forEachIndexed:与 forEach ,但是我们同时可以得到元素的index。
操作:list.forEachndexed{index,value -> print("$index==$value==,")}
结果:0==1==,1==2==,2==3==,3==4==,4==5==,5==6==,
max:返回最大的一项,如果没有则返回null。
操作:list.max()
结果:6
maxBy:根据给定的函数返回最大的一项,如果没有则返回null。
操作:list.maxBy{-it}
结果:1
min:返回最小的一项,如果没有则返回null。
操作:list.min()
结果:1
minBy:根据给定的函数返回最小的一项,如果没有则返回null。
操作:list.minBy{-it}
结果:6
none:如果没有任何元素与给定的函数匹配,则返回true。
操作:list.none{it%7==0}
结果:true
reduce:与 fold 一样,但是没有一个初始值。通过一个函数从第一项到最后一项进行累计。
操作:list.reduce{total,next -> total+next}
结果:21
reduceRight:与 reduce 一样,但是顺序是从最后一项到第一项。
操作:list.reduceRight{total,next -> total +next}
结果:21
sumBy:返回所有每一项通过函数转换之后的数据的总和。
操作:list.sumBy{it%2}
结果:3