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. 참 조
300x250
'Kotlin > Collections' 카테고리의 다른 글
Kotlin zip - List 묶기 (0) | 2020.11.27 |
---|---|
Kotlin flatMap - 원소 값 변경 및 추가 (0) | 2020.11.27 |
Kotlin count - 조건에 만족하는 원소 개수 (0) | 2020.11.26 |
Kotlin find, findLast - 특정 원소 찾기(탐색) (0) | 2020.11.26 |
Kotlin map 함수 - 리스트 값들 변경 (0) | 2020.11.25 |