주어진 조건을 만족하는 첫 번째 요소를 제외한 모든 요소를 포함하는 목록을 반환합니다.
public inline fun <T> Iterable<T>.dropWhile(predicate: (T) -> Boolean): List<T> {
var yielding = false
val list = ArrayList<T>()
for (item in this)
if (yielding)
list.add(item)
else if (!predicate(item)) {
list.add(item)
yielding = true
}
return list
}
val chars = ('a'..'z').toList()
println(chars.dropWhile { it < 'x' }) // [x, y, z]
주어진 조건을 만족하는 마지막 요소를 제외한 모든 요소를 포함하는 목록을 반환합니다.
public inline fun <T> List<T>.dropLastWhile(predicate: (T) -> Boolean): List<T> {
if (!isEmpty()) {
val iterator = listIterator(size)
while (iterator.hasPrevious()) {
if (!predicate(iterator.previous())) {
return take(iterator.nextIndex() + 1)
}
}
}
return emptyList()
}
val chars = ('a'..'z').toList()
println(chars.dropLastWhile { it > 'c' }) // [a, b, c]
dropWhile - Kotlin Programming Language
kotlinlang.org
dropLastWhile - Kotlin Programming Language
kotlinlang.org
'코틀린 > [Filtering] 필터 작업' 카테고리의 다른 글
[Kotlin][Number] coerceAtMost (0) | 2024.09.02 |
---|---|
[Kotlin][Collection] takeWhile / takeLastWhile (0) | 2024.08.28 |
[Kotlin][Collection] partition (0) | 2024.08.21 |