WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kotlin · Advanced · question 52 of 100

How can you use Kotlin’s Sequence interface to work with potentially infinite or large data streams? Provide an example.?

📕 Buy this interview preparation book: 100 Kotlin questions & answers — PDF + EPUB for $5

Kotlin’s Sequence interface provides a lazy and efficient way to work with collections that are potentially infinite or large. The Sequence interface represents a stream of values that can be evaluated on-demand, which means that it only evaluates the values as they are required, and avoids computing all the values of the stream at once.

To create a Sequence, you can use the ‘generateSequence‘ function, which takes a seed value and a function that generates the next value in the sequence:

fun fibonacci(): Sequence<Int> = generateSequence(0 to 1) { it.second to it.first + it.second }.map { it.first }

In this example, the ‘fibonacci‘ function generates an infinite sequence of Fibonacci numbers. It starts with a seed value of ‘(0, 1)‘ and generates the next value of the sequence by adding the two previous values together. The ‘map‘ function is used to extract only the first value of each pair, which is the Fibonacci number itself.

To consume a Sequence, you can use functions like ‘forEach‘, ‘map‘, ‘filter‘, etc. For example, to print the first 10 Fibonacci numbers, you can use the following code:

fibonacci().take(10).forEach { print("$it ") }

This code will print the following output:

0 1 1 2 3 5 8 13 21 34

Note that the ‘take‘ function is used to limit the number of elements in the stream to 10. Without this, the sequence would be infinite and the program would hang or run out of memory.

Overall, the Sequence interface provides a powerful tool for working with potentially infinite or large data streams in a lazy and efficient way. By using functions like ‘generateSequence‘, ‘map‘, ‘filter‘, and ‘take‘, you can process and consume these streams without requiring all the data to be loaded into memory at once.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kotlin interview — then scores it.
📞 Practice Kotlin — free 15 min
📕 Buy this interview preparation book: 100 Kotlin questions & answers — PDF + EPUB for $5

All 100 Kotlin questions · All topics