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

相关推荐
weixin_460443564 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
Cc.Y7 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
阿森_dev7 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by209997 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说8 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Sarvartha8 小时前
Lambda 表达式和函数式接口
java·开发语言
小白学大数据8 小时前
拼多多反爬对抗实战:Scrapy 中间件化采集架构解析
开发语言·scrapy·中间件·架构
大圣编蚕8 小时前
初探 NDK 的世界:从零开始理解 Android 原生开发
android
云贝贝贝8 小时前
MySQL 慢查询定位与索引优化实战
android
学逆向的8 小时前
win32注入代码
开发语言·网络安全·api·win32