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 —— 根据方法处理结果进行降序排序

多条件排序  

如果条件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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/179117.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.多层感知机-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)

一、项目简介 本项目是一套基于springboot框架实现的宠物医院管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单…

Selenium3-当元素通过@FindBy获取时,返回元素为null

报错: 在获取元素的js属性时一直获取不到&#xff0c;报空指针&#xff0c;定位到元素时&#xff0c;发现是FindBy的元素没有找到 解决方法: 在page类的构造函数中加上了 界面初始化&#xff0c;让元素先隐式加载&#xff0c;这样就不会出现返回元素为空的情况辣 PageFactory…

易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队

在当今快速发展的信息化时代&#xff0c;企业对于高效、自动化的软件需求日益增长。而易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队&#xff0c;正是为了满足这一需求而诞生的。 一、团队背景 技术顾问、维&#xff1a;Daxiami6789 易语言软件定制开发爬虫模…

大数据相关ERP、CRM、SRM、PLM、HRM、OA

目录 █ ERP&#xff08;企业资源计划&#xff09; █ CRM&#xff08;客户关系管理&#xff09; █ SCRM&#xff08;社会化客户关系管理&#xff09; █ SRM&#xff08;供应商关系管理&#xff09; █ OA&#xff08;办公自动化&#xff09; █ HRM&#xff08;人力资…

ROS分布式演练,多台设备进行通信的配置

1、概述 前面我们做的操作都是在单个设备上进行&#xff0c;也就是分别开启多个终端&#xff0c;在不同终端上启动节点等相关操作&#xff0c;这里我们使用两台设备来控制&#xff0c;一台虚拟机和一台无人车(使用VNC Viewer连上去&#xff0c;也可以看做一台Linux虚拟机) VNC…

Nacos本地修改编译源码2.2.3

下载Nacos源码 由于github访问速度慢&#xff0c;所以在gitee上下载 git clone https://gitee.com/mirrors/Nacos.git切换2.2.3版本 git checkout 2.2.3或者直接下载2.2.3的源码 本地编译 源码导入idea&#xff0c;然后编译 mvn -Dmaven.test.skiptrue -Drat.skiptrue c…

Spring Boot整合Swagger

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

【Unity数据交互】Json序列化你记得几分

ˊˊ &#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1…

数据库事务提交后才发送MQ消息解决方案

项目场景&#xff1a; 在项目开发中常常会遇到在一个有数据库操作的方法中&#xff0c;发送MQ消息&#xff0c;如果这种情况消息队列效率比较快&#xff0c;就会出现数据库事务还没提交&#xff0c;消息队列已经执行业务&#xff0c;导致不一致问题。举个应用场景&#xff0c;…

为什么 SIEM 是抵御网络威胁的最佳防御手段

随着 IT 服务和基础设施趋向于混合模式&#xff0c;以及最近数据的激增&#xff0c;组织必须拥有一个集中式安全解决方案来跟踪用户的行为和关键安全事件。 威胁行为者越来越善于检测和利用组织网络中的漏洞&#xff0c;网络攻击也在不断发展。虽然管理员可以对已经发生的攻击…

天猫牵手B站双11,入局年轻人的购物圈

11月1日&#xff0c;天猫联动B站知名UP主老番茄&#xff0c;一同共创发布作品《神秘的年更up主&#xff0c;准时回归&#xff01;》&#xff0c;在视频中除了联动UP主老番茄之外&#xff0c;还有其他3位知名UP主&#xff0c;美食区UP主绵羊料理、数码区UP主老师好我叫何同学、知…

【蓝桥杯软件赛 零基础备赛20周】第2周——常考知识点+判题

文章目录 0. 第1周答疑1. 常考知识点2. 蓝桥杯怎么判题2.1 判题系统如何判题2.2 测试数据和得分的关系2.3 自己做测试数据 3. 备赛计划4. 本周刷题 0. 第1周答疑 问题1&#xff1a;蓝桥杯怎么报名&#xff0c;什么时候报名&#xff1f; 答&#xff1a;集体报名或个人报名。大…

利用maven的dependency插件将项目依赖从maven仓库中拷贝到一个指定的位置

https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html 利用dependency:copy-dependencies可以将项目的依赖从maven仓库中拷贝到一个指定的位置。 使用默认配置拷贝依赖 如果直接执行mvn dependency:copy-dependencies&#xff0c;是将项目…

Qt Creator创建新项目警告问题

这里可以看见如果你是一些高版本会出现各种警告&#xff0c;但是可以编译通过&#xff0c;这是ClangCodeModel模块导致 解决办法 help -> About Plugins..->C ->ClangCodeModel 帮助 -> 关于插件 -> c ->ClangCodeModel取消勾选 然后重启Qt即可

vim三种模式,文本操作(操作字符/光标,列出行号可视化块模式/多文件查看)

目录 vim--文本编辑器 功能 基本概念 命令/默认模式 插入模式 底行模式 文本操作 引入 移动光标位置 删除字符 -- x/dd 复制/粘贴字符 -- yw/yyp 替换文本 -- r / %s 底行模式 全局替换 -- /g 撤销操作 -- u / ctrlr 修改字符 -- cw 示例 跳行 -- ctrlg 底行…

React的useEvent 和 ahooks 的 useMemorizedFn 的深度分析和对比

父组件 const TestParent: React.FC<any> () > {const [State, setState] useState(0);const changeFun useCallback(() > {console.log(useCallback closure 里的 State, State);}, [State]);const changeFun_useEvent useEvent(() > {console.log(useEv…

探索ChatGPT在学术写作中的应用与心得

随着人工智能的迅猛发展&#xff0c;ChatGPT作为一种强大的自然语言处理模型&#xff0c;逐渐在学术界引起了广泛的关注。本文将探讨ChatGPT在学术写作中的应用&#xff0c;并分享使用ChatGPT进行学术写作时的一些经验和心得。 01 — ChatGPT在学术写作中的应用 1.文献综述和…

GoLang忽略文件夹

一、忽略 在使用GoLang开发的过程中&#xff0c;我们可能在搜索查找时&#xff0c;需要屏蔽一些日志文件或者编译文件&#xff0c;基于这样的需求&#xff0c;我们可以在GoLang编辑器中右键选择对应的文件夹-》Mark Directory as-》Ecluded。 这样就可以忽略掉对应的文件夹。 …

双轮差速模型机器人通过线速度、角速度计算机器人位姿

已知上一时刻机器人位置P_OLD (x,y,),机器人当前时刻的线速度和角速度&#xff08;v,&#xff09;,短时间内t内&#xff0c;机器人在线性部分和非线性部分的增量为 线性部分&#xff1a; 非线性部分&#xff1a; 由于可能非常小&#xff0c;导致非线性部分数值不稳定&#xf…