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

相关推荐
lntu_ling2 小时前
Python-基于Haversine公式计算两点距离
开发语言·python·gis算法
ShineWinsu7 小时前
对于C++:继承的解析—上
开发语言·数据结构·c++·算法·面试·笔试·继承
小付同学呀7 小时前
C语言学习(五)——输入/输出
c语言·开发语言·学习
王码码20357 小时前
Flutter for OpenHarmony: Flutter 三方库 cryptography 在鸿蒙上实现金融级现代加解密(高性能安全库)
android·安全·flutter·华为·金融·harmonyos
梦幻精灵_cq8 小时前
学C之路:不可或缺的main()主函数框架(Learn-C 1st)
c语言·开发语言
消失的旧时光-19438 小时前
C++ 多线程与并发系统取向(二)—— 资源保护:std::mutex 与 RAII(类比 Java synchronized)
java·开发语言·c++·并发
亚历克斯神9 小时前
Flutter for OpenHarmony:Flutter 三方库 yaml_edit 精准修改 YAML 文件内容(保留注释与格式的编辑神器)
android·flutter·华为·harmonyos
左手厨刀右手茼蒿9 小时前
Flutter for OpenHarmony: Flutter 三方库 image_size_getter 零加载极速获取图片尺寸(鸿蒙 UI 布局优化必备)
android·服务器·flutter·ui·华为·harmonyos
亚历克斯神9 小时前
Flutter for OpenHarmony:zxing2 纯 Dart 条码扫描与生成库(不仅是扫码,更是编解码引擎) 深度解析与鸿蒙适配指南
android·flutter·华为·harmonyos
钛态9 小时前
Flutter for OpenHarmony:dio_cookie_manager 让 Dio 发挥会话管理能力,像浏览器一样自动处理 Cookie 深度解析与鸿蒙适配指南
android·linux·运维·flutter·ui·华为·harmonyos