코틀린에서 두개의 컬렉션을 결합하는대 사용
한 쌍의 요소로 구성된 리스트를 생성한다
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을 사용하면 키-쌍으로 묶어 매핑할 수 있다.
컬렉션의 요소를 특정 기준에 따라 그룹화하는 데 사용한다
이 함수는 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() 등의 함수를 제공하여, 그룹화된 데이터에 대한 다양한 집계 연산을 수행할 수 있다
컬렉션의 모든 요소를 순차적으로 처리하여 결과 값을 생성
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.fold(0) { sum, element -> sum + element }
println(result) // 출력: 15
foldRight() 함수를 사용하면 요소를 오른쪽에서 왼쪽으로 처리할 수 있다