글

라벨이 시퀀스인 게시물 표시

코틀린 (Kotlin) 시퀀스 사용하기(지연 계산)

지연 계산 아래 코드는 map과 filter 를 호출합니다. 그러나 map 에서 리스트를 생성하고 filter 에서도 리스트를 새로 생성하기때문에 데이터가 많은 경우 효율적이지 않습니다. people. map (Person::name). filter { it.startsWith("A") } 시퀀스(sequence) 큰 데이터를 연산할 때는 중간 리스트를 생성하지 않는 시퀀스를 사용하는 것이 효율적입니다. 시퀀스는 아래 연산처럼 중간 연산에서는 아무것도 실행되지 않습니다. listOf(1, 2, 3, 4)             . asSequence ()             . map { it * it }             . filter { it % 2 == 0 } 시퀀스는 최종 연산이 호출될 때 실행됩니다. listOf(1, 2, 3, 4)     . asSequence ()     . map { it * it }     . filter { it % 2 == 0 }     . toList () //최종 연산 시퀀스의 실행 시퀀스의 연산은 각 값에 대해 순차적으로 적용됩니다. listOf(1, 2, 3, 4)     . asSequence ()     . map { it * it }     . find { it > 3 } 위 코드의 경우 실행 순서는 다음과 같습니다. list(1) -> map (1*1) -> find (1>3) -> list(2) -> map (2*2) -> find (4>3) -> 종료 이처럼 시퀀스는 중간 리스트를 만들지않고 값을...