본문 바로가기
코틀린/[Elements] 요소 작업

[Kotlin][Collection] last / lastOrNull

by jinwo_o 2024. 8. 20.

마지막 요소를 반환합니다.

주어진 조건자와 일치하는 마지막 요소를 반환합니다.

NoSuchElementException - 배열이 비어 있는 경우

public fun <T> List<T>.last(): T {
    if (isEmpty())
        throw NoSuchElementException("List is empty.")
    return this[lastIndex]
}

public inline fun <T> List<T>.last(predicate: (T) -> Boolean): T {
    val iterator = this.listIterator(size)
    while (iterator.hasPrevious()) {
        val element = iterator.previous()
        if (predicate(element)) return element
    }
    throw NoSuchElementException("List contains no element matching the predicate.")
}


val list = listOf(1, 2, 3, 4)
println(list.last()) // 4
println(list.last { it % 2 == 1 }) // 3
println(list.last { it < 0 }) // NoSuchElementException

 

마지막 요소를 반환하거나 목록이 비어 있으면 null을 반환합니다.

주어진 조건자와 일치하는 마지막 요소를 반환하거나, 그러한 요소가 발견되지 않은 경우 null을 반환합니다.

public fun <T> List<T>.lastOrNull(): T? {
    return if (isEmpty()) null else this[size - 1]
}

public inline fun <T> List<T>.lastOrNull(predicate: (T) -> Boolean): T? {
    val iterator = this.listIterator(size)
    while (iterator.hasPrevious()) {
        val element = iterator.previous()
        if (predicate(element)) return element
    }
    return null
}


val list = listOf(1, 2, 3, 4)
println(list.lastOrNull { it > 0 }) // 4

val emptyList = emptyList<Int>()
println(emptyList.lastOrNull()) // null

 

last - Kotlin Programming Language

 

kotlinlang.org

 

lastOrNull - Kotlin Programming Language

 

kotlinlang.org