Почему результаты двух потоков различаются? [дубликат]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]

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