Kotlin学习之04
集合的变换操作
filter:保留满足条件的元素
map:集合中所有元素映射到其他元素构成新集合(就是转换每个元素,然后再组成一个新的结果)
flatMap:集合中所有元素映射到新集合并合并这些集合得到新集合(将一个输入的元素转换成一个集合,再将所有集合合并)
sequence
list.asSequence() .filter { println("filter: $it") it % 2 == 0 }.map { println("map: $it") it * 2 + 1 }.forEach { println("forEach: $it") }
加了asSequence后,所有元素会按顺序执行。
Sequence具体细节参照:Kotlin之Sequence - 简书
集合的聚合操作
sum:所有元素聚合
reduce:将所有元素依次按规则聚合,结果与元素类型一致
fold:给定初始化值,将元素按规则聚合,结果与初始化值类型一致
val list = listOf(1, 2, 3, 4) val list2 = listOf(1, 2, 3, 4) val list3 = listOf(1, 2, 3, 3, 4, 1, 2) val strList = listOf("测试", "2", "3") println("list.reduce = " + strList.reduce { acc, s -> acc + s }) println("list.fold = " + strList.fold(StringBuffer()) { acc, s -> acc.append(s) }) groupBy:将集合内数据按条件分类 println("groupBy = " + list3.groupBy { it }) zip:将集合与另一个集合进行合并,长度按最短的集合长度算 println("zip = " + list.zip(strList)) println("zip = " + list.zip(list2) { a: Int, b: Int -> a * b })