Kotlin (코틀린)
Kotlin in A..Z - Collections (Filtering Operation)
강태종
2020. 12. 2. 13:53
drop
N개의 숫자만큼 앞에서부터 버리고 나머지를 리턴한다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val drop = list.drop(5)
println(list)
println(drop)
}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[6, 7, 8, 9, 10]
dropLast
N개의 숫자만큼 뒤에서부터 버리고 나머지를 리턴한다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val drop = list.dropLast(5)
println(list)
println(drop)
}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5]
dropWhile
조건이 만족할 때까지 앞에서부터 버리고 나머지를 리턴한다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val drop = list.dropWhile { it < 4 }
println(list)
println(drop)
}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[4, 5, 6, 7, 8, 9, 10]
dropLastWhile
조건이 만족할 때까지 뒤에서부터 버리고 나머지를 리턴한다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val drop = list.dropLastWhile { it < 4 }
println(list)
println(drop)
}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
take
drop의 반대
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
println(list.take(5))
}
[1, 2, 3, 4, 5]
filter
조건에 만족하는 element들을 반환한다
=> dropWhile은 조건이 만족하지 않으면 break되지만 filter은 전체를 확인한다.
=> 순서가 보장됐으면 dropWhile, 보장되지 않으면 filter를 쓰는게 효율적이다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
println(list.filter { it < 5 })
}
[1, 2, 3, 4]
filterNot
filter의 반대
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
println(list.filterNot { it < 5 })
}
[5, 6, 7, 8, 9, 10]
slice
범위에 속하는 element를 리턴한다.
fun main() {
val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
println(list.slice(3..6))
}
[4, 5, 6, 7]