Как получить элемент до последнего элемента ArrayList в kotlin? - PullRequest
0 голосов
/ 23 октября 2018

Как получить элемент перед последним элементом ArrayList в kotlin?

У меня есть список типа

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

Я хочу получить "item4" из myList

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы можете сделать что-то вроде этого:

myList.getOrNull(myList.lastIndex - 1)

Это не потребует дополнительных проверок, но вернет null, если список маленький или пустой.

0 голосов
/ 23 октября 2018

Как насчет этого:

myList.dropLast(1).lastOrNull()

Это не очень эффективно, но читается очень хорошо.

Марко предложил аналогичный, более эффективный способ в комментариях:

myList.takeLast(2).firstOrNull()
0 голосов
/ 23 октября 2018
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]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...