Java 8 introduced lazy evaluation for collections using the Stream API. Kotlin has a similar feature called Sequence. The API of the Sequence class is similar to the API of the List class. But from the point of view of the return type, Sequence methods class can be classified into the following groups:
- Intermediate
- Terminal
Intermediate methods return an instance of the Sequence class and terminal methods return an instance of the List class. The Sequence class actually starts to perform evaluations when meeting the terminal operator.
To create an instance of the Sequence class, you can just invoke the asSequence() method on a list or range:
(0..1_000_000)
.asSequence()
This method looks as follows:
public fun <T> Iterable<T>.asSequence(): Sequence<T> {
return Sequence { this.iterator() }
}
Sequence is a method that creates a...