Language/Kotlin

Sequence

pan5158 2022. 5. 6. 23:59

시퀀스(Sequence)는 순차적인 컬렉션으로 요소의 크기를 특정하지 않고, 나중에 결정할 수 있는 특수한 컬렉션 입니다.

예를 들어 특정 파일에서 줄 단위로 읽어서 요소를 만들때 해당 파일의 끝을 모르면 줄이 언제 끝날지 알 수 없는 경우가 있는데 이럴 때 사용할 수 있습니다. 시퀀스는 처리 중에는 계산하고 있지 않다가 toList( )나 count( ) 같은 최종연산에 의해 결정됩니다.

 

generateSequence()로 생성하기

 

generateSequence(1)을 사용해 시드 인수에 1을 주고 1씩 증가하도록 시퀀스를 정의했습니다. 

nums에는 take(10)함수의 인자를 통해 원하는 개수만큼 요소가 저장되며, toList( ) 통해 출력으로 List 컬렉션으로

반환합니다.

 

 

연속적으로 map과 filter가 메서드 체이닝으로 인해 수행된것을 볼 수 있고, 최종결과 toList()의해 반환됩니다. 

시퀀스를 사용하면 요소의 개수가 많을때 속도나 메모리 측면에서 훨씬 좋은 성능을 낼 수 있습니다.