如何在Kotlin中获取ArrayList的最后一个项目之前的项目?

时间:2018-10-23 11:59:04

标签: arraylist kotlin

如何在kotlin中获得ArrayList的最后一个项目之前的项目?

我有一个类似

的列表
val myList = listOf("item1", "item2", "item3", "item4", "item5")

我想从myList中获取“ item4”

3 个答案:

答案 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()