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

[Kotlin][Collection] indexOf / indexOfFirst / indexOfLast

by jinwo_o 2024. 8. 20.

요소의 첫 번째 인덱스를 반환하거나 컬렉션에 요소가 없으면 -1 을 반환합니다.

public fun <@kotlin.internal.OnlyInputTypes T> Iterable<T>.indexOf(element: T): Int {
    if (this is List) return this.indexOf(element)
    var index = 0
    for (item in this) {
        checkIndexOverflow(index)
        if (element == item)
            return index
        index++
    }
    return -1
}


val list = listOf(12, 21, 33, 42)
print(list.indexOf(21)) // 1

 

주어진 술어와 일치하는 첫 번째 요소의 인덱스를 반환하거나, 컬렉션에 해당 요소가 포함되어 있지 않으면 -1 을 반환합니다.

public inline fun <T> Iterable<T>.indexOfFirst(predicate: (T) -> Boolean): Int {
    var index = 0
    for (item in this) {
        checkIndexOverflow(index)
        if (predicate(item))
            return index
        index++
    }
    return -1
}


val intArray = intArrayOf(0, 1, 2, 3)
print(intArray.indexOfFirst { it % 2 == 1 }) // 1

 

주어진 술어와 일치하는 마지막 요소의 인덱스를 반환하거나, 컬렉션에 해당 요소가 포함되어 있지 않으면 -1 을 반환합니다.

public inline fun <T> Iterable<T>.indexOfLast(predicate: (T) -> Boolean): Int {
    var lastIndex = -1
    var index = 0
    for (item in this) {
        checkIndexOverflow(index)
        if (predicate(item))
            lastIndex = index
        index++
    }
    return lastIndex
}


val intArray = intArrayOf(0, 1, 2, 3)
print(intArray.indexOfLast { it % 2 == 1 }) // 3

 

indexOf - Kotlin Programming Language

 

kotlinlang.org

 

indexOfFirst - Kotlin Programming Language

 

kotlinlang.org

 

indexOfLast - Kotlin Programming Language

 

kotlinlang.org