본문 바로가기
Language/Kotlin

코틀린의 콜렉션 연산: take, drop, takeLast, dropLast, takeLastWhile, dropWhile

by 시니성 2023. 8. 29.

코틀린에서는 콜렉션의 일부분을 취하거나 버리기 위한 다양한 함수를 제공합니다. 그 중 take(), drop(), takeLast(), dropLast(), takeLastWhile(), dropWhile() 함수들의 사용법과 개념을 살펴보겠습니다.


1. take()

  • 설명: take() 함수는 콜렉션의 처음부터 주어진 수만큼의 요소를 가져옵니다.
val numbers = listOf(1, 2, 3, 4, 5)
val taken = numbers.take(3)
println(taken) // [1, 2, 3]

2. drop()

  • 설명: drop() 함수는 콜렉션의 처음부터 주어진 수만큼의 요소를 제거하고 나머지 요소들을 반환합니다.
val numbers = listOf(1, 2, 3, 4, 5)
val dropped = numbers.drop(3)
println(dropped) // [4, 5]

3. takeLast()

  • 설명: takeLast() 함수는 콜렉션의 마지막부터 주어진 수만큼의 요소를 가져옵니다.
val numbers = listOf(1, 2, 3, 4, 5)
val takenLast = numbers.takeLast(3)
println(takenLast) // [3, 4, 5]

4. dropLast()

  • 설명: dropLast() 함수는 콜렉션의 마지막부터 주어진 수만큼의 요소를 제거하고 나머지 요소들을 반환합니다.
val numbers = listOf(1, 2, 3, 4, 5)
val droppedLast = numbers.dropLast(3)
println(droppedLast) // [1, 2]

5. takeLastWhile()

  • 설명: takeLastWhile() 함수는 콜렉션의 마지막 요소부터 시작하여 주어진 조건을 만족하는 연속된 요소들을 반환합니다.
val numbers = listOf(1, 2, 3, 4, 5, 4)
val takenLastWhile = numbers.takeLastWhile { it > 3 }
println(takenLastWhile) // [4, 5, 4]

6. dropWhile()

  • 설명: dropWhile() 함수는 콜렉션의 처음부터 시작하여 주어진 조건을 만족하는 연속된 요소들을 제거하고 나머지 요소들을 반환합니다.
val numbers = listOf(1, 2, 3, 4, 5)
val droppedWhile = numbers.dropWhile { it < 4 }
println(droppedWhile) // [4, 5]

비교 예시:

이제 위 함수들의 차이점을 한눈에 볼 수 있는 예제를 제공하겠습니다:

val numbers = listOf(1, 2, 3, 4, 5)

println(numbers.take(2))         // [1, 2]
println(numbers.drop(2))         // [3, 4, 5]
println(numbers.takeLast(2))     // [4, 5]
println(numbers.dropLast(2))     // [1, 2, 3]
println(numbers.takeLastWhile { it > 3 }) // [4, 5]
println(numbers.dropWhile { it < 3 })     // [3, 4, 5]

이 예제를 통해 take, drop, takeLast, dropLast, takeLastWhile, dropWhile 함수의 차이점을 명확히 파악할 수 있습니다.