Kotlin 문법 group 관련 함수


groupBy : 각 요소를 기준으로 map 생성
  • 각 요소가 특정 키에 대응되는 value를 가지는 map을 생성한다.
  • groupBy 함수는 Map을 반환

  • 예시
val numbers = listOf(1, 2, 3, 4, 5)
val grouped = numbers.groupBy { it % 2 }
println(grouped)
// Output: {1=[1, 3, 5], 0=[2, 4]}

partition : 컬렉션을 두 개의 그룹으로 분할
  • 각 요소는 주어진 조건에 따라 true 또는 false 그룹 중 하나에 할당됩니다.
  • partition 함수는 Pair를 반환
  • Pair은 pair.first와 pair.second로 접근 가능

  • 예시
val numbers = listOf(1, 2, 3, 4, 5)
val (even, odd) = numbers.partition { it % 2 == 0 }
println(even)
// Output: [2, 4]
println(odd)
// Output: [1, 3, 5]

associateBy : 주어진 컬렉션의 각 요소를 특정 키에 대응되는 값으로 매핑하는 맵을 생성
  • associateBy는 각 키에 대해 한 개의 요소를 매핑하는
  • 반면, groupBy는 각 키에 대해 여러 개의 요소를 리스트로 매핑합니다.
  • “associateBy” 함수는 중복된 키가 있는 경우, 첫 번째로 등장한 요소를 맵에 포함시킵니다.

  • 예시
val numbers = listOf("one", "two", "three", "four", "one")

val associateMap = numbers.associateBy { it.length }
println(associateMap) // {3=one, 5=three, 4=four}

val groupMap = numbers.groupBy { it.length }
println(groupMap) // {3=[one, two], 5=[three], 4=[four]}

태그:

카테고리:

업데이트:

댓글남기기