PHpullh
학습 라이브러리/Kotlin/시퀀스 심화 (Sequence Advanced)

KOTLIN · 컬렉션

시퀀스 심화 (Sequence Advanced)

시퀀스의 지연 평가를 활용하여 대용량 데이터를 효율적으로 처리합니다. 중간 컬렉션 생성을 방지합니다.

컬렉션중급sequencelazyyieldgenerateSequence

핵심 설명

시퀀스의 지연 평가를 활용하여 대용량 데이터를 효율적으로 처리합니다. 중간 컬렉션 생성을 방지합니다.

Kotlin code

fun main() {
    // 무한 시퀀스
    val fibonacci = sequence {
        var a = 0L
        var b = 1L
        while (true) {
            yield(a)
            val next = a + b
            a = b
            b = next
        }
    }
    println(fibonacci.take(10).toList())

    // 체이닝 최적화: 시퀀스는 원소별 처리
    val result = (1..1_000_000).asSequence()
        .filter { it % 3 == 0 }
        .map { it * it }
        .take(5)
        .toList()
    println(result) // [9, 36, 81, 144, 225]

    // generateSequence
    val powersOf2 = generateSequence(1) { it * 2 }
    println(powersOf2.take(8).toList())
    // [1, 2, 4, 8, 16, 32, 64, 128]
}

학습 팁

sequence { yield() }는 코루틴 기반이라 복잡한 생성 로직도 순차적으로 작성할 수 있습니다.

주의할 점

시퀀스는 toList() 등 터미널 연산을 호출해야 실행됩니다. 터미널 연산 없이는 아무것도 수행되지 않습니다.

자주 묻는 질문

시퀀스 심화 (Sequence Advanced)란 무엇인가요?

시퀀스의 지연 평가를 활용하여 대용량 데이터를 효율적으로 처리합니다. 중간 컬렉션 생성을 방지합니다.

시퀀스 심화 (Sequence Advanced) 학습 시 주의할 점은 무엇인가요?

시퀀스는 toList() 등 터미널 연산을 호출해야 실행됩니다. 터미널 연산 없이는 아무것도 수행되지 않습니다.

Continue Learning

Kotlin 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.