KOTLIN · 컬렉션
partition과 windowed
partition은 조건에 따라 두 그룹으로 분리하고, windowed는 슬라이딩 윈도우로 부분 리스트를 생성합니다.
컬렉션중급partitionwindowedchunkedsliding-window
핵심 설명
partition은 조건에 따라 두 그룹으로 분리하고, windowed는 슬라이딩 윈도우로 부분 리스트를 생성합니다.
Kotlin code
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// partition: 조건에 따라 두 리스트로 분리
val (evens, odds) = numbers.partition { it % 2 == 0 }
println("짝수: $evens") // [2, 4, 6, 8, 10]
println("홀수: $odds") // [1, 3, 5, 7, 9]
// windowed: 슬라이딩 윈도우
val windows = numbers.windowed(3)
println("윈도우: $windows")
// [[1,2,3], [2,3,4], [3,4,5], ...]
// 이동 평균 계산
val movingAvg = numbers.windowed(3) { it.average() }
println("이동평균: $movingAvg")
// windowed with step
val stepped = numbers.windowed(3, step = 2, partialWindows = true)
println("스텝2: $stepped")
// chunked: 고정 크기 분할
val chunks = numbers.chunked(3)
println("청크: $chunks") // [[1,2,3], [4,5,6], [7,8,9], [10]]
}학습 팁
windowed에 변환 함수를 전달하면 중간 리스트 생성 없이 바로 결과를 계산합니다. 이동 평균 등에 효율적입니다.
주의할 점
partialWindows = false(기본값)이면 마지막 불완전한 윈도우는 버려집니다. 모든 원소를 포함하려면 true로 설정하세요.
자주 묻는 질문
partition과 windowed란 무엇인가요?
partition 은 조건에 따라 두 그룹으로 분리하고, windowed 는 슬라이딩 윈도우로 부분 리스트를 생성합니다.
partition과 windowed 학습 시 주의할 점은 무엇인가요?
partialWindows = false (기본값)이면 마지막 불완전한 윈도우는 버려집니다. 모든 원소를 포함하려면 true 로 설정하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.