처음 n 개 요소를 제외한 모든 요소를 포함하는 목록을 반환합니다.
public fun <T> Iterable<T>.drop(n: Int): List<T> {
require(n >= 0) { "Requested element count $n is less than zero." }
if (n == 0) return toList()
val list: ArrayList<T>
if (this is Collection<*>) {
val resultSize = size - n
if (resultSize <= 0)
return emptyList()
if (resultSize == 1)
return listOf(last())
list = ArrayList<T>(resultSize)
if (this is List<T>) {
if (this is RandomAccess) {
for (index in n until size)
list.add(this[index])
} else {
for (item in listIterator(n))
list.add(item)
}
return list
}
}
else {
list = ArrayList<T>()
}
var count = 0
for (item in this) {
if (count >= n) list.add(item) else ++count
}
return list.optimizeReadOnlyList()
}
val chars = ('a'..'z').toList()
println(chars.drop(23)) // [x, y, z]
마지막 n 개 요소를 제외한 모든 요소를 포함하는 목록을 반환합니다.
public fun <T> List<T>.dropLast(n: Int): List<T> {
require(n >= 0) { "Requested element count $n is less than zero." }
return take((size - n).coerceAtLeast(0))
}
val chars = ('a'..'z').toList()
println(chars.dropLast(23)) // [a, b, c]
drop - Kotlin Programming Language
kotlinlang.org
dropLast - Kotlin Programming Language
kotlinlang.org
'코틀린 > [Extraction] 추출 작업' 카테고리의 다른 글
[Kotlin][Collection] unzip (0) | 2024.08.22 |
---|---|
[Kotlin][Collection] take / takeLast (0) | 2024.08.16 |
[Kotlin][Collection] slice (0) | 2024.08.16 |