Sequence

코틀린 시퀀스는 자바 스트림과 개념이 같다. 코틀린에서 시퀀스를 제공하는 이유는 자바 8 이전 버전을 사용하는 경우 스트림이 없기 때문이다. 코틀린 시퀀스는 여러 CPU에서 병렬로 실행하는 기능을 제공하지 않기 때문에 자바 버전이 8 이상인 경우 스트림을 사용하면 된다.

Sequence

중간 연산과 최종 연산

people.asSequence()
    .map(Person::name) // 중간 연산
    .filter { it.startsWith("A") } // 중간 연산
    .toList() // 최종 연산

연산 수행 순서

숫자를 제곱하고 제곱한 숫자중에서 3보다 큰 첫번째 원소를 찾는 예

listOf(1,2,3,4).map { it * it }.find { it > 3 }

listOf(1,2,3,4).asSequence().map { it * it }.find { it > 3 }

자바 스트림과 코틀린 시퀀스

Reference