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