Kotlin Sequence 활용 방법

✨ 개요

Kotlin에서 대량의 데이터를 처리하거나 체이닝 연산을 최적화하고 싶을 때, Sequence는 강력한 해결책이 됩니다.

컬렉션(List, Set)은 연산마다 전체 데이터가 메모리에 로드되지만,
Sequence는 지연 연산(Lazy Evaluation)을 통해 한 번에 하나씩 요소를 처리해 메모리와 성능을 절약합니다.


1. ✅ Sequence란?

✅ 정의


2. ✅ Sequence vs 일반 컬렉션

항목 Collection (List, Set) Sequence
연산 방식 즉시 실행 지연 실행 (lazy)
성능 (대량 처리) 비효율적 효율적
중간 연산 처리 모든 요소에 순차 적용 필요할 때만 적용
메모리 사용 전체 로드 한 항목씩 처리
예시 사용처 소량의 고정된 리스트 대용량 or 체이닝 연산

3 ✅. 기본 사용법

val numbers = listOf(1, 2, 3, 4, 5)

// 일반 컬렉션 방식
val doubledList = numbers.map { it * 2 }.filter { it > 5 }

// Sequence 방식
val doubledSeq = numbers.asSequence()
    .map { it * 2 }
    .filter { it > 5 }
    .toList()

4 ✅. Sequence의 주요 함수 예제

4.1 map + filter + tak

val result = generateSequence(1) { it + 1 } // 무한 시퀀스
  .map { it * 2 }
  .filter { it % 3 == 0 }
  .take(5)
  .toList()

println(result) // [6, 12, 18, 24, 30]

4.2 takeWhile

val result = sequenceOf(1, 2, 3, 10, 20, 30)
    .takeWhile { it < 10 }
    .toList()

println(result) // [1, 2, 3]

4.3 zipWithNext

val result = sequenceOf(1, 2, 4, 7).zipWithNext { a, b -> b - a }
println(result) // [1, 2, 3]

5.🧠 Sequence 주의사항


6.🧠 결론



Related Posts