요소의 첫 번째 인덱스를 반환하거나 컬렉션에 요소가 없으면 -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
'코틀린 > [Elements] 요소 작업' 카테고리의 다른 글
[Kotlin][Collection] last / lastOrNull (0) | 2024.08.20 |
---|---|
[Kotlin][Collection] first / firstOrNull (0) | 2024.08.20 |
[Kotlin][Collection] elementAt / elementAtOrElse / elementAtOrNull (0) | 2024.08.19 |