23.12.21 문법정리

KSang·2023년 12월 26일
0

TIL

목록 보기
17/101

문법 정리

zip()

코틀린에서 두개의 컬렉션을 결합하는대 사용

한 쌍의 요소로 구성된 리스트를 생성한다

val list1 = listOf("a", "b", "c")
val list2 = listOf(1, 2, 3)
val result = list1.zip(list2)
println(result)  // 출력: [(a, 1), (b, 2), (c, 3)]

람다를 제공해서 각쌍의 요소를 처리할 수 있다

val list1 = listOf("a", "b", "c")
val list2 = listOf(1, 2, 3)
val result = list1.zip(list2) { a, b -> "$a$b" }
println(result)  // 출력: [a1, b2, c3]

toMap을 사용하면 키-쌍으로 묶어 매핑할 수 있다.

groupingBy

컬렉션의 요소를 특정 기준에 따라 그룹화하는 데 사용한다

이 함수는 Grouping 타입의 객체를 반환하며, 이 객체는 그룹화된 데이터와 함께 다양한 집계 연산을 수행할 수 있다

val words = listOf("a", "bb", "a", "bb", "c")
val grouping = words.groupingBy { it }

val frequency = grouping.eachCount()
println(frequency)  // 출력: {a=2, bb=2, c=1}

eachCount와 묶어 사용할때가 많은대

이 외에도 Grouping 객체는 reduce(), fold(), aggregate() 등의 함수를 제공하여, 그룹화된 데이터에 대한 다양한 집계 연산을 수행할 수 있다

fold()

컬렉션의 모든 요소를 순차적으로 처리하여 결과 값을 생성

val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.fold(0) { sum, element -> sum + element }
println(result)  // 출력: 15

foldRight() 함수를 사용하면 요소를 오른쪽에서 왼쪽으로 처리할 수 있다

0개의 댓글