KOTLIN · 컬렉션
zip과 flatten
zip은 두 컬렉션을 쌍으로 결합하고, flatten은 중첩 컬렉션을 평탄화합니다.
컬렉션중급zipflattenflatMapunzip
핵심 설명
zip은 두 컬렉션을 쌍으로 결합하고, flatten은 중첩 컬렉션을 평탄화합니다.
Kotlin code
fun main() {
val names = listOf("김철수", "이영희", "박지성")
val ages = listOf(25, 30, 28)
val cities = listOf("서울", "부산")
// zip: 쌍으로 결합
val pairs = names.zip(ages)
println(pairs) // [(김철수,25), (이영희,30), (박지성,28)]
// zip with transform
val infos = names.zip(ages) { name, age -> "$name($age세)" }
println(infos) // [김철수(25세), 이영희(30세), 박지성(28세)]
// 짧은 쪽에 맞춰짐
val zipped = names.zip(cities)
println(zipped) // [(김철수,서울), (이영희,부산)]
// unzip
val (unNames, unAges) = pairs.unzip()
println("이름: $unNames, 나이: $unAges")
// flatten: 중첩 리스트 평탄화
val nested = listOf(listOf(1, 2), listOf(3, 4), listOf(5))
println(nested.flatten()) // [1, 2, 3, 4, 5]
// flatMap: map + flatten
val words = listOf("Hello World", "Kotlin Fun")
println(words.flatMap { it.split(" ") })
}학습 팁
zip은 짧은 컬렉션의 길이에 맞춰집니다. 길이가 다를 수 있다면 zipWithNext()나 인덱스 기반 접근을 고려하세요.
주의할 점
flatten()은 한 레벨만 평탄화합니다. 깊은 중첩을 완전히 평탄화하려면 재귀적으로 적용해야 합니다.
자주 묻는 질문
zip과 flatten란 무엇인가요?
zip 은 두 컬렉션을 쌍으로 결합하고, flatten 은 중첩 컬렉션을 평탄화합니다.
zip과 flatten 학습 시 주의할 점은 무엇인가요?
flatten() 은 한 레벨만 평탄화합니다. 깊은 중첩을 완전히 평탄화하려면 재귀적으로 적용해야 합니다.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.