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

相关推荐
小小码农Come on17 分钟前
QT中窗口位置、相对位置、绝对位置
android·开发语言·qt
diediedei19 分钟前
C++中的适配器模式变体
开发语言·c++·算法
郝学胜-神的一滴27 分钟前
Python中的Mixin继承:灵活组合功能的强大模式
开发语言·python·程序人生
叫我:松哥28 分钟前
基于python强化学习的自主迷宫求解,集成迷宫生成、智能体训练、模型评估等
开发语言·人工智能·python·机器学习·pygame
晚霞的不甘28 分钟前
Flutter for OpenHarmony 创意实战:打造一款炫酷的“太空舱”倒计时应用
开发语言·前端·flutter·正则表达式·前端框架·postman
WKP941833 分钟前
线程并行控制CompletableFuture
java·开发语言
飞机和胖和黄38 分钟前
考研之C语言第二周作业
c语言·开发语言·考研
输出输入1 小时前
MT4 EA 设计一次一单方法
开发语言
一起养小猫1 小时前
OpenHarmony 实战中的 Flutter:深入理解 Widget 核心概念与底层原理
开发语言·flutter
盐真卿1 小时前
python第四部分:模块(每日更新)
开发语言·python