[kotlin] 코틀린에서 콜렉션 타입을 이용한 데이터 나누기

코틀린에서는 콜렉션 타입을 사용하여 데이터를 효과적으로 분할할 수 있습니다. 이를 통해 리스트, 맵 또는 기타 콜렉션 타입에서 특정 조건에 따라 데이터를 분리할 수 있습니다.

이 블로그 포스트에서는 코틀린에서의 데이터 분할에 대한 예제 코드와 설명을 제공합니다.

1. 리스트에서 데이터 분할

코틀린에서 리스트를 사용하여 데이터를 분할하는 예제 코드를 살펴보겠습니다.

val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

val (evenNumbers, oddNumbers) = numbers.partition { it % 2 == 0 }

println("짝수: $evenNumbers")
println("홀수: $oddNumbers")

위 코드는 numbers 리스트를 짝수와 홀수로 분할하여 evenNumbersoddNumbers로 저장한 후 출력하는 예제입니다.

2. 맵에서 데이터 분할

맵에서 데이터를 키(key) 또는 값(value)에 따라 분할하는 방법도 있습니다. 다음은 맵에서 값에 따라 분할하는 예제 코드입니다.

val people = mapOf(
    "Alice" to 25,
    "Bob" to 30,
    "Charlie" to 20,
    "David" to 27
)

val (youngPeople, oldPeople) = people.entries.partition { it.value < 30 }

println("30세 미만: $youngPeople")
println("30세 이상: $oldPeople")

위 코드는 people 맵을 값에 따라 30세 미만과 30세 이상으로 분할하여 youngPeopleoldPeople으로 저장한 후 출력하는 예제입니다.

3. 커스텀 조건에 따라 데이터 분할

커스텀 조건에 따라 데이터를 분할할 수도 있습니다. 아래 코드는 제약 조건을 사용하여 partition 함수를 활용하는 예제입니다.

val words = listOf("apple", "banana", "cherry", "peach", "grape")

val (longWords, shortWords) = words.partition { it.length > 5 }

println("6자 이상 단어: $longWords")
println("5자 이하 단어: $shortWords")

위 코드는 문자열 리스트를 문자열의 길이에 따라 6자 이상과 5자 이하로 분할하여 longWordsshortWords로 저장한 후 출력하는 예제입니다.

위의 예제를 참고하여 코틀린에서 콜렉션 타입을 활용하여 데이터를 효과적으로 분할하는 방법을 익힐 수 있습니다.

참고 자료