2025年3月14日 星期五 甲辰(龙)年 月十三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Kotlin

Kotlin编程技巧

时间:02-05来源:作者:点击数:45

获取List或Map中的第一个元素

假设有一个集合,List或Map,我只需要取集合里面的第1个元素,普通代码实现如下:

  • val list = mutableListOf("一", "二", "三")
  • val map = mutableMapOf("一" to "1", "二" to "2")
  • val result01 = if (list.isNotEmpty()) list[0] else ""
  • val result02 = if (map.isNotEmpty()) {
  • var resultValue = ""
  • for ((key, value) in map) {
  • resultValue = value
  • break
  • }
  • resultValue
  • } else {
  • ""
  • }

如上代码,实现了获取List或Map中第1个元素的value值,如果没有则使用空字符串,这获取List第1个元素的代码还好,但是获取Map第1个元素的代码就有点恶心了,在不知道key的情况下,获取一个元素就需要遍历,代码写的好臃肿,还好我们的Kotlin有更好的写法,如下:

  • val list = mutableListOf("一", "二", "三")
  • val map = mutableMapOf("一" to "1", "二" to "2")
  • val result01 = list.firstOrNull() ?: ""
  • val result02 = map.entries.firstOrNull()?.value ?: ""

Ok,就是这么的舒服,再也不需要判断集合中有没有元素了,代码超短的,爽!

对应的,也有获取最后一个元素的方法:lastOrNull()

获取集合的最后一个索引

在使用集合的时候,比如遍历一个集合的时候,经常会用到判断是否是遍历到最后一个元素了的操作,如下:

  • val list = listOf(1, 2, 3)
  • list.forEachIndexed { index, i ->
  • if (index == list.size - 1) {
  • println("现在是最后一个元素了")
  • }
  • }

list.size - 1表示最后一个元素的索引,这太常用了,所以Kotlin添加了扩展属性,如下:

  • public val <T> List<T>.lastIndex: Int
  • get() = this.size - 1

所以,前面的示例可以优化为:

  • val list = listOf(1, 2, 3)
  • list.forEachIndexed { index, i ->
  • if (index == list.lastIndex) {
  • println("现在是最后一个元素了")
  • }
  • }

这样的代码更易于理解,而且也更简单。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门