集合框架

Arrays

方法声明功能描述
arrayOfNulls()创建一个指定大小的空数组
arrayOf()创建一个数组并初始化元素
xxArrayOf()创建指定类型的数组,如 intArrayOf()
withIndex()返回一个包含数组元素及其索引的列表

Arrays - forEach

public inline fun <T> Array<out T>.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) }

Kotlin 集合

  • Iterable
  • MutableIterable
  • Collection
  • MutableCollection
  • List
  • MutableList
  • Set
  • MutableSet
  • Map
  • MutableMap

Collection

方法声明功能描述
joinToString将集合的元素连接成一个字符串

集合和函数操作符

方法声明功能描述
listOf()创建一个不可变列表
mutableListOf创建一个可变列表
toList将集合转换为列表
setOf()创建一个不可变集合
mutableSetOf创建一个可变集合
hashSetOf创建一个哈希集合
linkedSetOf创建一个链表集合
toSet将集合转换为集合
mapOf()创建一个不可变映射
hashMapOf创建一个哈希映射
linkedMapOf创建一个链表映射

总数操作符

方法声明功能描述
any至少一个元素符合条件
all所有元素符合条件
count符合条件的元素总数
fold把一个集合的元素折叠起来并得到一个最终的结果
foldRight从右向左折叠集合
forEach遍历集合中的每一个元素
forEachIndexed遍历集合中的每一个元素并提供其索引
max返回集合中的最大值
maxBy返回给定函数计算出的最大值
min返回集合中的最小值
minBy返回给定函数计算出的最小值
none判断集合中是否没有元素符合条件
reduce与 fold 类似,但没有初始值,返回值类型与集合元素相同
reduceRight从右向左合并集合中的元素
sumBy返回所有元素的总和,通过给定的函数计算

过滤操作符

方法声明功能描述
drop返回去掉前 n 个元素后的集合
dropWhile返回从第一个不符合条件的元素开始到集合末尾的元素
filter过滤符合条件的元素
slice返回指定索引范围内的元素
take返回前 n 个元素
takeLast返回后 n 个元素
takeWhile返回从第一个元素开始到第一个不符合条件的元素之前的所有元素

映射操作符

方法声明功能描述
map把一个集合映射成另一个集合
flatMap将集合的元素打平成单个列表
groupBy按关键字分组
  • map()
/** * Returns a list containing the results of applying the given [transform] function * to each element in the original collection. */ public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> { return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform) } /** * Applies the given [transform] function to each element of the original collection * and appends the results to the given [destination]. */ public inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C { for (item in this) destination.add(transform(item)) return destination }
  • flatMap()
public inline fun <T, R> Iterable<T>.flatMap(transform: (T) -> Iterable<R>): List<R> { return flatMapTo(ArrayList<R>(), transform) } public inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(destination: C, transform: (T) -> Iterable<R>): C { for (element in this) { val list = transform(element) destination.addAll(list) } return destination }

元素操作符

方法声明功能描述
contains判断集合是否包含某个元素
elementAt返回指定索引位置的元素
first返回集合中的第一个元素
indexOf返回某元素在集合中的索引
last返回集合中的最后一个元素
lastIndexOf返回某元素在集合中最后出现的索引
single返回集合中的单个元素,集合必须只有一个元素

产生操作符

方法声明功能描述
merge合并两个集合
partition将集合按条件分成两个集合
plus返回集合与另一个集合或元素的并集
zip将两个集合的元素合并成对

顺序操作符

方法声明功能描述
reverse反转集合中元素的顺序
sort对集合中的元素进行排序
sortBy根据指定的函数对集合中的元素进行排序
sortDescending对集合中的元素进行降序排序