美文网首页Kotlin
每天学一点 Kotlin -- 集合类型共性

每天学一点 Kotlin -- 集合类型共性

作者: 冯可乐同学 | 来源:发表于2021-11-10 15:05 被阅读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:返回按特定比较器降序排序后的所有元素。
相关代码:https://gitee.com/fzq.com/test-demo

相关文章

网友评论

    本文标题:每天学一点 Kotlin -- 集合类型共性

    本文链接:https://www.haomeiwen.com/subject/ronjaltx.html