kotlin filter 过滤集合(filterIndexed,filterNot,filterIsInstance,filterNotNull)

filter 在kotlin中一个高阶函数属于过滤集合中其中之一

filter作用:

用于根据提供的谓词函数过滤出集合中的元素,注意谓词只能检查元素的值,谓词可以理解为判断条件

举例:检查集合中长度大于3的元素

val numbers = listOf("one", "two", "three", "four")
val langThan3 = numbers.filter { it.length>3 }
// 打印结果 [three, four]
Log.d("=======langThan3", langThan3.toString())

filterIndexed

如果想在过滤中使用元素在集合中的位置,应该使用 filterIndexed()。它接受一个带有两个参数的谓词:元素的索引和元素的值。

举例:检查长度小于5且不是第一个的元素

        val numbers = listOf("one", "two", "three", "four")val filteredIdx = numbers.filterIndexed { index, s -> (index != 0) && (s.length < 5)  }
//         打印结果[two, four]Log.d("=======filteredIdx", filteredIdx.toString())

filteredNot

filteredNot :否定条件来过滤集合

举例:检查长度不小于3的元素

        val numbers = listOf("one", "two", "three", "four")val filteredNot = numbers.filterNot { it.length <= 3 }//打印结果 [three, four]Log.d("=======filteredNot", filteredNot.toString())

filterIsInstance

filterIsInstance() 返回给定类型的集合元素。在一个 List<Any> 上被调用时,filterIsInstance<T>() 返回一个 List<T>, 从而让你能够在集合元素上调用 T 类型的函数。

举例:过滤集合中int,类型,String 类型

        val numbers = listOf(null, 1, "two", 3.0, "four")numbers.filterIsInstance<Int>().forEach {// 打印结果是1Log.d("=======int元素", it.toString())}numbers.filterIsInstance<String>().forEach {// 打印结果是two, fourLog.d("=======String元素", it)}

filterNotNull

filterNotNull() 返回所有的非空元素

val numbers = listOf(null, "one", "two", null)numbers.filterNotNull().forEach {// 打印结果 one twoLog.d("=======元素", it)}

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

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

相关文章

YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)

一、本文介绍 本文给大家带来的改进机制是ACmix自注意力机制的改进版本&#xff0c;它的核心思想是&#xff0c;传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影&#xff0c;生成一组中间特征&#xff0c;然后根…

ant-design-vue的form表单全局禁用不生效

文章目录 一、问题二、解决2.1、4.0之前的版本2.2、4.0开始的版本 三、最后 一、问题 ​ 实际使用ant-design-vue在开发表单的时候或许会遇到编辑与查看的需求&#xff0c;但是查看的时候表单不允许编辑&#xff0c;ant-design-vue的官方是没有像element一样提供全局disabled属…

Tomcat 安装和运行教程

文章目录 一、Tomcat 安装1.1 选择合适的 Tomcat 版本1.2 下载 Tomcat1.3 配置环境变量 二、 运行 Tomcat2.1 启动 Tomcat2.2 关闭 Tomcat 参考资料 一、Tomcat 安装 1.1 选择合适的 Tomcat 版本 Apache Tomcat 是 Jakarta EE&#xff08;正式JavaEE&#xff09;技术子集的开…

Unity关于easySave2 easySave3保存数据的操作;包含EasySave3运行报错的解决

关于easySave2 easySave3保存数据的操作&#xff1b;包含EasySave3运行报错的解决 /// 数据存储路径&#xff08;Easy Save的默认储存位置为&#xff1a;Application.persistentDataPath&#xff0c;为了方便我们可以给它指定储存路径&#xff09; #region 存储数据/*/// /// 存…

Java经典框架之SpringBoot

SpringBoot Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. SpringBoot基础 2. Spring…

第7课 利用FFmpeg将摄像头画面与麦克风数据合成后推送到rtmp服务器

上节课我们已经拿到了摄像头数据和麦克风数据&#xff0c;这节课我们来看一下如何将二者合并起来推送到rtmp服务器。推送音视频合成流到rtmp服务器地址的流程如下&#xff1a; 1.创建输出流 //初始化输出流上下文 avformat_alloc_output_context2(&outFormatCtx, NULL, &…

杜笙MB-115up抛光树脂(出水18兆欧)

TULSIONMB-115UP是一种高阶核子级抛光树脂&#xff0c;由核子级强酸型阳离子TulsimerMB115和强碱阴离子交换树脂A33按一定比例混合而成。这种树脂具有独特的结构和性能&#xff0c;能够有效地去除材料表面的污渍和杂质&#xff0c;提高材料的表面质量和光泽度。 首先&#xff0…

【Spring实战】15 Logback

文章目录 1. 依赖2. 配置3. 打印日志4. 启动程序5. 验证6. 调整日志级别7. 代码详细总结 Spring 作为一个现代化的 Java 开发框架&#xff0c;提供了很多便利的功能&#xff0c;其中包括灵活而强大的日志记录。本文将介绍如何结合 Spring 和 Logback 配置和使用日志&#xff0c…

【c语言】日常刷题☞有趣的题目分享❀❀

︿(&#xffe3;︶&#xffe3;)︿hi~~ ヽ(&#xffe3;ω&#xffe3;(&#xffe3;ω&#xffe3;〃)ゝ本次刷题发现3个比较有趣的题目&#xff0c;分享给您&#xff0c;希望对您有所帮助&#xff0c;谢谢❀❀~ 目录 1.单词覆盖还原&#xff08;单词的连续性&#xff09; …

基于mediapipe的人体姿态估计模型——没有GPU依然速度飞起

关于人体姿态检测模型,我们前期也介绍过了很多相关的模型,比如基于Yolo-NAS的姿态检测以及基于YOLOv8的人体姿态检测,而人体姿态估计一直是计算机视觉任务中比较重要的一个模型。但是基于YOLO系列的人体姿态检测模型需要较大的算力,且很难在CPU模型上快速的运行。 基于medi…

HTML5 和 CSS3 新特性(常用)

HTML5 的新特性 HTML5 的新增特性主要是针对于以前的不足&#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题&#xff0c;基本是 IE9 以上版本的浏览器才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量使用这 些新特性。 HTML…

511. 游戏玩法分析 I

511. 游戏玩法分析 I 活动表 Activity&#xff1a; --------------------- | Column Name | Type | --------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | --------------------- 在 SQL 中&#xff0c;表的主键是 …

【二叉树的顺序结构及实现一-堆】

文章目录 一、二叉树的顺序结构二、堆的概念及结构三、堆的实现(以小堆为例)1、堆的结构体2、堆的初始化->void HeapInit(HP* hp);3、堆的销毁->void HeapDestroy(HP* hp);4、堆的判空->bool HeapEmpty(HP* hp);5、取堆顶的数据->HPDataType HeapTop(HP* hp);6、堆…

抖店新手该如何运营?

我是电商珠珠 在抖店开好之后&#xff0c;大部分新手都不知道怎么去运营&#xff0c;今天&#xff0c;我就来给大家详细的讲一下。 第一步&#xff0c;店铺基础设置 我一直跟我的学生讲&#xff0c;一定要懂基本流程&#xff0c;只有前期将流程跑通了后期才可以毫无压力。 …

32单片机按键扫描 实现长短按

key.c /******************************************************************************************************* file key.c* author Kyro Qu* brief 按键驱动代码* 实验平台: STM32G431RB开发板************************************…

序列化和反序列化详解

序列化和反序列化是计算机科学中非常重要的概念&#xff0c;尤其在处理分布式系统、网络通信、数据存储等场景时。下面将详细解释这两个过程&#xff0c;并使用Java语言作为示例。 序列化 (Serialization) 定义&#xff1a;序列化是将数据结构或对象状态转换为可以存储或传输…

Java基础综合练习(飞机票,打印素数,验证码,复制数组,评委打分,数字加密,数字解密,抽奖,双色球)

练习一&#xff1a;飞机票 需求: ​ 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 ​ 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来…

cloudcompare 编译安装解决无法load pcd文件问题

参考 https://github.com/CloudCompare/CloudCompare/blob/master/BUILD.md sudo apt install libqt5svg5-dev libqt5opengl5-dev qt5-default qttools5-dev qttools5-dev-tools libqt5websockets5-dev git clone --recursive https://github.com/cloudcompare/CloudCompare.g…

Flink学习-处理函数

简介 处理函数是Flink底层的函数&#xff0c;工作中通常用来做一些更复杂的业务处理&#xff0c;处理函数分好几种&#xff0c;主要包括基本处理函数&#xff0c;keyed处理函数&#xff0c;window处理函数。 Flink提供了8种不同处理函数&#xff1a; ProcessFunction&#x…

【algorithm】自动驾驶常见常考的几个模型和推导,顺便总结自己遇到的考题经验不断更新之———控制版

写在前面 本来快达成目标了&#xff0c;没想到公司遭受了问题&#xff0c;公司和同事我感觉还是挺好的&#xff0c;有国企的正规也有小企业的灵活&#xff0c;大家都很有学习欲望。 作为本次再次复习回忆如下&#xff1a; 把之前面试准备的 机器学习&#xff08;基本搬运到CSD…