Метод limit
Метод limit возвращает новый стрим,
который состоит только из первых n
элементов исходного стрима. В первый и
единственный параметр мы передаем
максимальное количество элементов, которое
должно остаться в новом стриме. Если
исходный стрим содержит меньше элементов,
чем указано в параметре, возвращается
исходный стрим без изменений. Метод
является промежуточной операцией и не
запускает выполнение стрима до вызова
терминального метода.
Синтаксис
stream.limit(maxSize)
Пример
Давайте возьмем стрим из пяти чисел и ограничим его первыми тремя элементами:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = List.of(1, 2, 3, 4, 5)
.stream()
.limit(3)
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[1, 2, 3]
Пример
Давайте попробуем ограничить стрим количеством элементов, которое больше длины самого стрима:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<String> res = List.of("a", "b", "c")
.stream()
.limit(10)
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[a, b, c]
Пример
Давайте ограничим стрим нулем элементов:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = List.of(1, 2, 3, 4, 5)
.stream()
.limit(0)
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[]
Пример
Давайте используем метод limit
вместе с методом skip, чтобы
получить срез элементов:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = List.of(1, 2, 3, 4, 5)
.stream()
.skip(1)
.limit(3)
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[2, 3, 4]