当前位置: 首页 > news >正文

kotlin first/last/indexOf/elementAt

kotlin 中

first 是取集合元素中第一个元素

last 是取集合元素中最后一个元素

indexOf 根据元素寻找下标,默认是第一个

elementAt 根据下标找元素

下面写一个demo 说明下他们几个的使用

        val list = listOf("A", "D", "A", "B", "E", "C", "D", "C", "E", "F")//打印集合中的第一个元素Log.d("=======first", list.first().toString()) //打印结果是A//符合条件的第一个元素,根据谓词匹配Log.d("=======first{}", list.first { it =="D"})//打印结果是D//打印集合中的最后一个元素Log.d("=======last", list.last().toString()) //打印结果是F//符合条件的最后一个元素,根据谓词匹配Log.d("=======last{}", list.last { it =="D"})//打印结果是D//根据元素寻找下标,默认是第一个Log.d("=======indexOf", list.indexOf("D").toString()) //打印结果是1//集合中元素第一个是D的下标Log.d("=======indexOfFirst", list.indexOfFirst { it == "D" }.toString())//打印结果是1//集合中元素最后一个是D的下标Log.d("=======indexOfLast", list.indexOfLast { it == "D" }.toString())//打印结果是6//根据下标找元素Log.d("=======last", list.elementAt(3).toString()) //打印结果是B

上面的根据谓词匹配的demo 不明显下面重新写一个如下

        val numbers = listOf("one", "two", "three", "four", "five")Log.d("======first", numbers.first { it.length > 3 }) //打印结果threeLog.d("======last", numbers.last { it.length > 3 }) //打印结果five

有时候判断条件集合中没有的时候就会报错如下

val numbers = listOf("one", "two", "three", "four", "five")
Log.d("======first", numbers.first { it.length > 6 }) //报错 java.util.NoSuchElementException

这个时候可以使用

firstOrNull 判断条件符合返回元素如果不符合返回null 这样就不会报错了

lastOrNull 判断条件符合返回元素如果不符合返回null 这样就不会报错了

        Log.d("======first", numbers.firstOrNull { it.length>6 }.toString()) //打印结果nullLog.d("======last", numbers.lastOrNull { it.length>6  }.toString()) //打印结果null

elementAt 也有这种情况当给出的下标集合中不存在的时候也是会报错的比如

例如下面的就会报错

val numbers = listOf("one", "two", "three", "four", "five")
Log.d("======first", numbers.elementAt(8)) //报错

这种时候可以使用elementAtOrNull

elementAtOrNull的作用判断条件符合返回元素,不符合返回null

        val numbers = listOf("one", "two", "three", "four", "five")Log.d("======first", numbers.elementAtOrNull(8).toString()) 

还有一个elementAtOrElse 还接受一个 lambda 表达式,该表达式能将一个 Int 参数映射为一个集合元素类型的实例。 当使用一个越界位置来调用时,elementAtOrElse() 返回对给定值调用该 lambda 表达式的结果。

       val numbers = listOf("one", "two", "three", "four", "five")Log.d("======first", numbers.elementAtOrElse(5) { index -> "The value for index $index is undefined"})

打印结果:The value for index 5 is undefined

http://www.lryc.cn/news/274823.html

相关文章:

  • 计算机网络——网络中要解决的问题
  • 初识STL
  • 程序员副业之无人直播助眠
  • imazing破解版百度云2.17.3(附激活许可证下载)
  • VS+QT五子棋游戏开发
  • SpringBoot中动态注册接口
  • CSS 实现两个圆圈重叠部分颜色不同
  • 【数据库系统概念】第7-14章集合
  • Kibana
  • C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式
  • K8S--- volumesvolumeMount
  • AntV-G6 -- 将G6图表应用到项目中
  • 第二百五十回
  • 如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看
  • 【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023
  • 解决Canvas画图清晰度问题
  • zookeeper经典应用场景之分布式锁
  • 红队专题-Web安全/渗透测试-文件上传/下载/包含
  • 安装阿里云CLI之配置阿里云凭证信息
  • 阿里云和腾讯云2核2G3M服务器上传速度多少?
  • Python中的cls语法
  • 【Java】java -jar 读取jar包之外的yml
  • 遥感影像-语义分割数据集:山体滑坡数据集详细介绍及训练样本处理流程
  • ubuntu 22.04 安装r-base时缺少r-recommended
  • HarmonOS 通用组件(Button)
  • 代码随想录算法训练DAY22|二叉树8
  • 如何解决跨域问题
  • Typora 编辑器 讲解 包括使用方式 快捷键 附带下载地址 (免费破解)
  • 16-Echarts简化系列之:平行坐标系 parallel 和 parallelAxis 坐标轴
  • SqlServer内存使用情况