Однако результаты различаются в зависимости от местоположения метода ограничения. Почему операция продолжается даже после получения предельного количества результатов, если после фильтра используется предел?
Код: Выделить всё
// code 1
int sum = IntStream.range(1, 101)
.map(i -> {
System.out.format("map : %d \n",i);
return i * i;
})
.limit(5)
.filter(i -> {
System.out.format("filter : %d\n",i);
return i {
System.out.format("map : %d \n",i);
return i * i;
})
.filter(i -> {
System.out.format("filter : %d\n",i);
return i
Подробнее здесь: [url]https://stackoverflow.com/questions/78637459/why-are-the-results-of-the-2-streams-different[/url]
Мобильная версия