参考文章:
集合操作概述
- 集合的基本操作增删改查和java类似存在迭代器操作和for循环操作,此处不再进行整理,需要注意的是操作的只读集合还是可写集合,针对只读集合操作并不会修改其原始集合的item,是创建了一个新的集合对象。
- 本文主要是对kotlin的集合的扩展操作进行整理,具体的扩展操作如下:
- 转换:包含映射(map)/合拢(zip和unzip)/关联(associateWith)/打平(flatten)/字符串表示(joinToString)
- 映射:map/mapIndexed/mapNotnull/mapIndexedNotNull/mapKeys/mapValues操作符,等价于rajava的map操作符,对集合进行元素转换操作,具体案例可以参考参考文章。
- 合拢(zip和unzip): 将两个列表按照元素的顺序分别将其元素值合并成一个元素并串联成为一个列表,最终元素的个数取决于原始列表元素数量少的那个。即:a(1,2,3,4)zip b (5,6,7)= [(1,5),(2,6)] 而unzip则是逆向操作,即将合并的列表拆分为key-value的两个列表如上结果是[(1,2),(5,6)].
- 关联(associateWith):将集合列表创建成为一个map,列表的元素可以作为key也可以作为value具体取决与api:associateWith:列表的元素为key,associateBy:列表的元素为value associate:其元素即可以为key,也可以为value 具体取决于lambda 函数。
- 打平(flatten): 将多个集合的元素顺序组合到一个集合中去
- flatten:铺平多个集合元素到一个集合中去
- flatMap:map和flatten的结合使用,将其转换后并平铺到一个集合中去。
- 字符串表示(joinToString):将集合列表转为字符串,其参数可以指定分隔符,前缀,后缀且针对item元素比较多的可以指定某个元素后跟着对应的省略符。
- 转换:包含映射(map)/合拢(zip和unzip)/关联(associateWith)/打平(flatten)/字符串表示(joinToString)