Java 8 Stream API vs loop for-each

Anexo A. O loop for-each

List<Integer> array = Arrays.asList(1,2,3,4,5);
for(Integer i: array) {
extremelyComplexCalculation
(i);
}

Anexo B. A API de fluxo

List<Integer> array = Arrays.asList(1,2,3,4,5);
array
.stream().forEach((i) -> {
extremelyComplexCalculation
(i);
});

Pode parecer que o Java 8 stream apié um pouco prolixo do que o for-eachloop para coleções. E nos perguntamos que benefício pode advir disso.

A diferença entre for-each loope usando stream api ( collection.stream () ) em Java 8 é que podemos facilmente implementar paralelismo ao usar stream api com collection.parallelStream () . Considerando que, em for-each loopvocê terá que lidar com tópicos por conta própria.

Anexo C. O fluxo paralelo

List<Integer> array = Arrays.asList(1,2,3,4,5);
array
.parallelStream().forEach((i) -> {
extremelyComplexCalculation
(i);
});