Gymterview
junior

Для чего в стримах предназначен метод limit?

limit(long maxSize) — промежуточная операция, которая ограничивает стрим заданным количеством первых элементов. Она особенно важна при работе с бесконечными стримами (Stream.iterate, Stream.generate), где без limit() конечная операция никогда не завершится.

Пример
Stream.iterate(1, n -> n + 1)
    .limit(5)
    .forEach(System.out::print); // 12345

limit() является short-circuiting операцией: как только набрано нужное количество элементов, дальнейшая обработка прекращается. Это делает её эффективной даже на больших источниках данных. Парная операция skip(n) пропускает первые n элементов, и вместе они позволяют организовать постраничную выборку.

На собеседовании: упомяните, что limit — short-circuiting операция, и приведите пример с бесконечным стримом.