Почему результаты двух потоков различаются? [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему результаты двух потоков различаются? [дубликат]

Сообщение Anonymous »

API Stream поддерживает ленивые операции, поэтому я понимаю, что он выполняет вычисления вертикально.
Однако результаты различаются в зависимости от местоположения метода ограничения. Почему операция продолжается даже после получения предельного количества результатов, если после фильтра используется предел?

Код: Выделить всё

// 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»