Может ли `stream.allmatch ()` вызовать предикат несколько раз для одного и того же элемента?JAVA

Программисты JAVA общаются здесь
Anonymous
Может ли `stream.allmatch ()` вызовать предикат несколько раз для одного и того же элемента?

Сообщение Anonymous »

Я пытаюсь реализовать короткую закрученную обработку для внешнего ввода java.util.stream (think stream.foreach () , но с коротким замыканием). Я не забочусь о порядке элементов, но их личность и счет важны. У меня уже есть решение, основанное на потоке. Spliterator () и некоторое время цикл, однако он не параллелизирован и его трудно читать. У меня есть ненадежный намек на использование allmatch () для короткого замыкания операции.

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

    @Test
public void anyMatch() {
AtomicLong count = new AtomicLong(0);
IntStream.range(0, Integer.MAX_VALUE).parallel().allMatch(i -> {
count.incrementAndGet();
return true;
});
Assert.assertEquals(count.get(), Integer.MAX_VALUE);
}
imo, учитывая характер базового Spliterator.trysplit () Это надежный подход, но я хотел бы как -то получить подтверждение и прогноз.

Подробнее здесь: https://stackoverflow.com/questions/797 ... me-element

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