如何在kotlin中获得ArrayList的最后一个项目之前的项目?
我有一个类似
的列表val myList = listOf("item1", "item2", "item3", "item4", "item5")
我想从myList中获取“ item4”
答案 0 :(得分:4)
myList[myList.lastIndex - 1]
在调用此函数之前,请务必检查数组中是否至少有两个项目
编辑:
如果您经常使用此功能,则可以定义一个扩展功能,其作用类似于last()
:
fun <T> List<T>.secondToLast(): T {
if (size < 2)
throw NoSuchElementException("List has less than two elements")
return this[size - 2]
}
答案 1 :(得分:1)
您可以执行以下操作:
myList.getOrNull(myList.lastIndex - 1)
这不需要其他检查,但是如果列表较小或为空,则将返回null
。
答案 2 :(得分:0)
那呢:
myList.dropLast(1).lastOrNull()
这不是很有效,但是读起来确实很好。
Marko在评论中提出了一种类似的,更有效的方法:
myList.takeLast(2).firstOrNull()