PHpullh
학습 라이브러리/Kotlin/partition과 windowed

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 메타데이터를 가집니다.