Метод limit(long maxSize) в Java Stream API предназначен для создания нового стрима, содержащего элементы исходного стрима в количестве, не превышающем maxSize. Это промежуточная (intermediate) операция, которая отсекает оставшиеся элементы после того, как было обработано указанное количество.
Для чего предназначен метод limit() в стримах?
Метод limit(long maxSize) в Java Stream API предназначен для создания нового стрима, содержащего элементы исходного стрима в количестве, не превышающем maxSize.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Метод limit(long maxSize) в Java Stream API предназначен для создания нового стрима, содержащего элементы исходного стрима в количестве, не превышающем maxSize. Это промежуточная (intermediate) операция, которая отсекает оставшиеся элементы после того, как было обработано указанное количество.
Основные эффекты:
- Ограничение размера: Применяет ограничение на максимальное количество элементов в результирующем стриме.
- Ленивость: Вычисление элементов происходит только тогда, когда они реально запрашиваются терминальной операцией, до достижения заданного лимита.
- Возможность усечения: Если исходный стрим содержит больше элементов, чем указано в
maxSize, стрим будет усечен доmaxSizeэлементов. Если меньше, то будут использованы все имеющиеся элементы.
Пример:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");
List<String> firstTwoNames = names.stream()
.limit(2) // Ограничиваем стрим первыми двумя элементами
.collect(Collectors.toList()); // Собираем в список
// firstTwoNames будет содержать ["Alice", "Bob"]