kotlin中集合操作符

集合操作符

1.总数操作符

any ------ 判断集合中 是否有满足条件 的元素;

all ------ 判断集合中的元素 是否都满足条件;

none ------ 判断集合中是否 都不满足条件,是则返回true;

count ------ 查询集合中 满足条件 的 元素个数;

reduce ------ 从 第一项到最后一项进行累计 ;

reduceRight ------ 从 最后一下到第一项进行累计;

fold ------ 与reduce类似,不过有初始值,而不是从0开始累计;

foldRight ------ 和reduceRight类似,有初始值,不是从0开始累计;

forEach ------ 循环遍历元素,元素是it,可对每个元素进行相关操作;

forEachIndexed ------ 循环遍历元素,同时得到元素index(下标);

max ------ 查询最大的元素,如果没有则返回null;

maxBy ------ 获取方法处理后返回结果最大值对应的那个元素的初始值,如果没有则返回null;

min ------ 查询最小的元素,如果没有则返回null;

minBy ------ 获取方法处理后返回结果最小值对应那个元素的初始值,如果没有则返回null;

sumBy ------ 获取 方法处理后返回结果值 的 总和;

dropWhile ------ 返回从第一项起,去掉满足条件的元素,直到不满足条件的一项为止

结果

2.过滤操作符

通过 某个条件 来对集合中的元素进行过滤,返回一个处理后的列表结果,但不会改变原列表

filter ------ 过滤 掉所有 满足条件 的元素

filterNot ------ 过滤所有不满足条件的元素

filterNotNull ------ 过滤NULL

take ------ 返回从第一个开始的n个元素

takeLast ------ 返回从最后一个开始的n个元素

takeWhile ------ 返回不满足条件的下标前面的所有元素的集合

drop ------ 返回 去掉前N个元素后 的列表

dropLastWhile ------ 返回从最后一项起,去掉满足条件的元素,直到不满足条件的一项为止

slice ------ 过滤掉 非指定下标 的元素,即保留下标对应的元素过滤list中指定下标的元素(比如这里只保留下标为1,3,4的元素)

映射操作符

map ------ 将集合中的元素通过某个 方法转换 后的结果存到一个集合中;

mapIndexed ------ 除了得到 转换后的结果 ,还可以拿到Index(下标);

mapNotNull ------ 执行方法 转换前过滤掉 为 NULL 的元素

flatMap ------ 合并两个集合,可以在合并的时候做些小动作;

groupBy ------ 将集合中的元素按照某个条件分组,返回Map;

顺序操作符

reversed ------ 相反顺序

sorted ------ 自然排序(升序)

sortedBy ------ 根据方法处理结果进行自然(升序)排序

sortedDescending ------ 降序排序

sortedByDescending ------ 根据方法处理结果进行降序排序

多条件排序

Kotlin 复制代码
如果条件1 相同则比较条件2
list.sortedWith(compareByDescending<T> { 
    条件1
}.thenByDescending {
    条件2
})

生产操作符

这节的操作符涉及到一个 Pair 的类,该类是Kotlin提供的用来处理双元对数据的,

可以理解成Map中的一个键值对,比如Pair("key","value") 等价于 "key" to "value"

zip ------ 两个集合按照下标组合成一个个的Pair塞到集合中返回

partition ------ 根据判断条件是否成立,拆分成两个 Pair

plus ------ 合并两个List,可以用"+"替代

unzip ------ 将包含多个Pair的List 转换成 含List的Pair

元素操作符

contains ------ 判断集合中是否有指定元素,有返回true

elementAt ------ 查找下标对应的元素,如果下标越界会抛IndexOutOfBoundsException

elementAtOrElse ------ 查找下标对应元素,如果越界会根据方法返回默认值(最大下标经方法后的值) elementAtOrNull ------ 查找下标对应元素,越界会返回Null

first ------ 返回符合条件的第一个元素,没有 抛NoSuchElementException

firstOrNull ------ 返回符合条件的第一个元素,没有 返回null

indexOf ------ 返回指定下标的元素,没有 返回-1

indexOfFirst ------ 返回第一个符合条件的元素下标,没有 返回-1

indexOfLast ------ 返回最后一个符合条件的元素下标,没有 返回-1

last ------ 返回符合条件的最后一个元素,没有 抛NoSuchElementException

lastIndexOf ------ 返回符合条件的最后一个元素,没有 返回-1

lastOrNull ------ 返回符合条件的最后一个元素,没有 返回null

single ------ 返回符合条件的单个元素,如有没有符合或超过一个,抛异常

singleOrNull ------ 返回符合条件的单个元素,如有没有符合或超过一个,返回null

相关推荐
恋猫de小郭8 分钟前
Flutter 里的 Layer 解析,带你了解不一样角度下的 Flutter 渲染逻辑
android·前端·flutter
下页、再停留8 分钟前
【PHP】通过IP获取IP所在地理位置(免费API接口)
开发语言·tcp/ip·php
vivo高启强9 分钟前
FD 泄露引发的AGP8 build 失败问题
android
ifanatic17 分钟前
[每周一更]-(第148期):使用 Go 进行网页抓取:Colly 与 Goquery 的对比与思路
开发语言·后端·golang
怀旧,24 分钟前
【C++】1. C++基础知识
开发语言·c++·算法
小乖兽技术33 分钟前
C#开发基础之深入理解“集合遍历时不可修改”的异常背后的设计
开发语言·windows·c#
我今晚不熬夜40 分钟前
JSON在java中的使用
java·开发语言·json
用户20187928316743 分钟前
Binder 事务失败(FAILED BINDER TRANSACTION)
android
柿蒂1 小时前
Android图片批量添加处理优化:从「30」秒缩短至「4.4」秒
android·android jetpack
LZQqqqqo2 小时前
C# 接口(interface 定义接口的关键字)
java·开发语言·c#