본문 바로가기

코틀린/[Aggregation] 집계 작업10

[Kotlin][Set] union, subtract, intersect (합집합, 차집합, 교집합) 두 컬렉션의 모든 개별 요소를 포함하는 세트를 반환합니다.public infix fun Iterable.union(other: Iterable): Set { val set = this.toMutableSet() set.addAll(other) return set}val set1 = setOf(1, 2, 3, 4)val set2 = setOf(2, 3, 4, 5)print(set1.union(set2)) // [1, 2, 3, 4, 5] 이 컬렉션에 포함되어 있고 지정된 컬렉션에 포함되지 않은 모든 요소를 포함하는 집합을 반환합니다.public infix fun Iterable.subtract(other: Iterable): Set { val set = this.toMutableS.. 2024. 9. 7.
[Kotlin][Collection] groupingBy with eachCount 각 요소에서 키를 추출하기 위해 지정된 keySelector 함수를 사용하여 나중에 그룹화 및 접기 작업 중 하나와 함께 사용할 컬렉션에서 그룹화 소스를 만듭니다.eachCount : 각 그룹의 키를 그룹의 요소 수와 연결하는 맵을 반환합니다.public inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) }}v.. 2024. 9. 7.
[Kotlin][Collection] groupBy 요소에 적용된 지정된 keySelector 함수에 의해 반환된 키로 원본 컬렉션의 각 요소에 적용된 valueTransform 함수에 의해 반환된 값을 그룹화하고 각 그룹 키가 해당 값 목록과 연결된 맵을 반환합니다. 반환된 맵은 원래 컬렉션에서 생성된 키의 항목 반복 순서를 유지합니다.public inline fun Iterable.groupBy(keySelector: (T) -> K): Map> { return groupByTo(LinkedHashMap>(), keySelector)}public inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K): M { for (element in this) { v.. 2024. 9. 4.
[Kotlin][Collection] count 주어진 조건자와 일치하는 요소의 수를 반환합니다.public fun Iterable.count(): Int { if (this is Collection) return size var count = 0 for (element in this) checkCountOverflow(++count) return count}print(listOf(1, 2, 3, 4).count { it > 1 }) // 3 count - Kotlin Programming Language kotlinlang.org 2024. 8. 14.
[Kotlin][Collection] average 컬렉션에 있는 요소의 평균 값을 반환합니다.public fun Iterable.average(): Double { var sum: Double = 0.0 var count: Int = 0 for (element in this) { sum += element checkCountOverflow(++count) } return if (count == 0) Double.NaN else sum / count}print(listOf(1, 2, 3).average()) // 2.0 average - Kotlin Programming Language kotlinlang.org 2024. 8. 13.
[Kotlin][Collection] sum / sumOf 컬렉션에 있는 모든 요소의 합계를 반환합니다.public fun Iterable.sum(): Int { var sum: Int = 0 for (element in this) { sum += element } return sum}print(listOf(1, 2, 3, 4).sum()) // 10 컬렉션의 각 요소에 적용된 선택기 함수에 의해 생성된 모든 값의 합계를 반환합니다.public inline fun CharSequence.sumOf(selector: (Char) -> Int): Int { var sum: Int = 0.toInt() for (element in this) { sum += selector(element) } retu.. 2024. 8. 13.
[Kotlin][Collection] reduce / reduceIndexed 첫 번째 요소부터 시작하여 현재 누산기 값과 각 요소에 왼쪽에서 오른쪽으로 연산을 적용하여 값을 누적합니다. 이 배열이 비어 있으면 예외가 발생합니다. 배열이 예상대로 비워질 수 있는 경우 대신 ReduceOrNull 을 사용하세요. 수신자가 비어 있으면 null 을 반환합니다.public inline fun Iterable.reduce(operation: (acc: S, T) -> S): S { val iterator = this.iterator() if (!iterator.hasNext()) throw UnsupportedOperationException("Empty collection can't be reduced.") var accumulator: S = iterator.next.. 2024. 8. 12.