每天学一点 Kotlin -- 集合类型共性
2021-11-10 本文已影响0人
冯可乐同学
----《第一季Kotlin崛起:次世代Android开发 》学习笔记
总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 集合:MutableMap
下一篇:每天学一点 Kotlin -- 初识类和对象
1. 集合类型 Collection
1.1 根据集合类型的整体特性,Kotlin 中分为3种集合:
(1) 有序可重复: Array -- 数组
(2) 有序不重复: Set
(3) 无序不重复: Map
2. 集合类型总结
2.1 虽然在 Kotlin 中可以直接使用 Java 原理提供的类型,但是 Kotlin 本身也提供了一组非常良好的原生集合类型接口供我们使用。分别是以下几种:
- Iterable:这是父类(class),意思是可迭代的、可被重复操作的。任何继承了此接口的类,都意味着实现了一个其中元素可以被迭代的序列。
- MutableIterable:支持在迭代过程中移除元素的 Iterable。
- Collection:代表了一组元素的通用集合。可以通过各种函数来访问集合,如返回集合大小、是否为空、是否包含某个元素等。
- MutableCollection:一个支持添加和删除元素的 Collection。
- List:代表一组有序元素的集合,和 Array 基本相同。
- MutableList:一个支持添加和删除元素的 List(Array)。
- Set:一个无序的,但其中元素并不重复的集合。
- MutableSet:一个支持添加和删除元素的 Set。
- Map:键值对的集合。其中的键具有唯一性。
- MutableMap:一个支持添加和删除元素的 Map。
3. 集合类型的操作
3.1 聚合系列
- any:返回 true,只要其中一个元素满足判断条件。
- all:返回 true,如果所有的元素满足条件。
- count:返回匹配条件的元素数目。
- flod:提供一个初始值,并描述从第一个到最后一个元素如何依次与这个初始值计算的操作,从而实现累计。
- foldRight:与 fold 一样,但是顺序是从最后一个元素到第一个。
- forEach:对集合中的每个元素进行操作。
- forEachIndexed:与 forEach 相似,但可以获取元素的索引。
- max:获取最大的元素。
- maxBy:获取给定函数操作后产生的最大值的元素。
- min:获取最小值的元素。
- minBy:获取给定函数操作后产生的最小值的元素。
- none:返回 true,如果没有元素满足条件。
- reduce:与 fold 相似,但是不需要初始值。描述从第一个元素到最后一个元素如何依次计算的操作。
- reduceRight:与 reduce 相似,但顺序是最后一个元素到第一个。
- sumBy:返回经过处理过的元素的和。
3.2 筛选系列
- drop:把头部的 n 个元素丢弃。
- dropWhile:把头部几个满足条件的元素丢弃。
- dropLast:把尾部的 n 个元素丢弃。
- dropLastWhile:把尾部几个满足条件的元素丢弃。
- filter:返回满足条件的所有元素。
- filterNot:返回不满足条件的所有元素。
- slice:切割,按指定索引或索引范围内的元素。
- take:获取头部的 n 个元素。
- takeWhile:获取满足条件的头部元素。
- takeLast:获取尾部的 n 个元素。
3.3 映射(或变型)系列
- flatMap:迭代集合的所有元素,为每一个元素生成一个新的集合,最后把所有集合合并在一个集合里。
- groupBy:分组,返回一个原集合按条件判断函数分组后的 map。
- map:返回一个对每个元素变换后的新集合。
- mapIndexed:在 map 的基础上,引入集合的索引供变换使用。
3.4 元素操作
- contains:如果找到此元素返回 true。
- elementAt:返回指定索引处的元素,如果索引不在集合的索引范围内,则抛出异常。
- elementAtOrElse:如果索引越界则调用函数的结果。
- elementAtOrNull:如果索引越界则返回 null。
- first:返回第一个满足条件的元素。
- firstOrNull:找不到满足条件的元素则返回 null。
- indexOf:返回元素的首个索引,如果元素不存在则返回-1。
- indexOfFirst:返回满足条件的首个索引,如果元素不存在则返回-1。
- indexOfLast:返回满足条件的最后索引,如果元素不存在则返回-1。
- last:返回最后一个满足条件的元素。
- lastOrNull:返回最后一个满足条件的元素,如果元素不存在则返回-1。
- lastIndexOf:返回元素的最后索引,如果元素不存在则返回-1。
- single:返回满足条件的单元素,途观没找到或多个元素满足条件则抛出异常。
- singleOrNull:返回满足条件的单元素,途观没找到或多个元素满足条件则返回 null。
3.5 生成系列
- partition:把集合拆分成一对集合,第一个集合满足条件,另一个集合不满足条件。
- zip:把两个集合以相同索引顺序进行配对,组成一个新集合。新集合以最短的那个集合所以为准。
3.6 排序系列
- reversed:返回逆转顺序后的所有元素。
- sorted:返回升序排序后的所有元素。
- sortedBy:返回按特定比较器升序排序后的所有元素。
- sortedDescending:返回降序排序后的所有元素。
- sortedByDescending:返回按特定比较器降序排序后的所有元素。