티스토리 뷰

val group = intArrayOf(1,1,1,2,2,3).groupBy { it }
group.apply {
    println("this : $this") // {1=[1, 1, 1], 2=[2, 2], 3=[3]}
    println("group.keys : $keys") // [1, 2, 3]
    println("group.values : $values") // [[1, 1, 1], [2, 2], [3]]
    println("group.values.sort 1 : ${values.sortedByDescending { it.size }}") // [[1, 1, 1], [2, 2], [3]]
    println("group.values.sort 2 : ${values.sortedBy { it.size }}") // [[3], [2, 2], [1, 1, 1]]
}

groupBy를 이용한 이것저것

 

val pair = arrayOf("a","b","c").mapIndexed { i, d -> Pair(i,d) }
println("Pair : ${pair}") // [(0, a), (1, b), (2, c)]

key value를 만들때 Pair활용, 

 

val numbers = listOf(10000, 1000, 100)
val sum = numbers.reduce { total, num -> total + num }
println("reduced: $sum") // reduced: 11100
val sum2 = numbers.fold(10) { total, num -> total + num }
println("folded: $sum2") // folded: 11110

val strings = listOf("a","b","c")
val string = strings.reduce { total, peace -> total + peace }
println("string reduced: $string") // reduced: abc
val string2 = strings.fold("d") { total, peace -> total + peace}
println("string fold: $string2") // reduced: dabc

reduce는 배열의 첫번째 값이 최초 첫번째 파라미터로 전달,

fold는 첫번째 파라미터에 값 지정 가능, 

'kotlin' 카테고리의 다른 글

Codility MissingInteger  (0) 2022.11.01
kotlin with, also, apply, let, run  (0) 2022.09.29
kotlin 배열 선언 및 반복문 문법  (1) 2022.09.29
VO class 만들기  (0) 2022.08.16
값을 갖고있는 fun 함수  (0) 2022.08.16