Kotlin partition - 조건에 따라 2개로 분리하기

Notepad96

·

2020. 11. 26. 22:05

300x250

 

 

 

 


1. partition

 

partition 함수를 사용하면 리스트를 특정 조건에 따라 분리할 수 있다.

 

 

List나 Set에서 사용할 수 있으며 Map에서는 사용이 불가하다.

 

 

 

본래 partition으로 얻을 수 있는 결과물을 얻기 위해서

 

저장할 콜렉션(리스트) 선언 + for문 + if문 + 삽입 연산

 

와 같은 작업을 해주어야 한다.

 

 

 

하지만 partition을 사용함으로써 간단하게 한줄로도 같은 결과를 얻어올 수 있다.

 

 

 

 

 


2. 코 드

환경 : Kotlin Version = 1.4.20, JVM

fun main(args: Array<String>) {
    println("===================LIST=======================")
    val ml = mutableListOf(5, 4, 1, 2, 3, 6, 9, 7, 8)
    println("1. List : $ml")

    val ml2 = ml.partition { it % 2 == 0 }  // 조건에 따라서 나눈다
    if(ml2 is Pair<List<Int>, List<Int>> )
    println("2. List : $ml2")
    println("2-1. First : ${ml2.first}")    // 조건에 true면 first
    println("2-2. Second : ${ml2.second}")  // 조건에 false면 second



    println("===================SET=======================")
    val ms = mutableSetOf(5, 2, 1, 3, 4, 6)
    var ms2 = ms.partition { it > 3 }
    println("1. Set : $ms")
    println("2. Set : $ms2")
    println("2-1. First : ${ms2.first}")
    println("2-2. Second : ${ms2.second}")
}

 

결 과

 

- partition을 사용하여서 짝수일 경우와 그 반대 즉, 홀수인 경우로 리스트를 분리하였다.

 

 

반환된 타입은 Pair<List<Int>, List<Int>> 으로서 first와 second로 각 리스트에 접근할 수 있다.

 

 

first : 조건에 만족하는 원소들로 구성된 리스트

 

second : 조건에 만족하지 않는 원소들로 구성된 리스트

 

 

따라서 first에는 짝수인 원소들만, second에는 홀수인 원소들로만 구성된다.

 

 

 

 

 

- Set 또한 List와 동일한 방법으로 사용하여 동일한 결과를 얻을 수 있다.

 

 

 

 

 


3. 참 조

 

 

partition - Kotlin Programming Language

 

kotlinlang.org

 

300x250