Perché forEach
stampa i numeri in ordine casuale, mentre collect
raccoglie sempre gli elementi nell'ordine originale, anche dallo streaming parallelo?Perché lo stream parallelo viene raccolto sequenzialmente in Java 8
Integer[] intArray = {1, 2, 3, 4, 5, 6, 7, 8};
List<Integer> listOfIntegers = new ArrayList<>(Arrays.asList(intArray));
System.out.println("Parallel Stream: ");
listOfIntegers
.stream()
.parallel()
.forEach(e -> System.out.print(e + " "));
System.out.println();
// Collectors
List<Integer> l = listOfIntegers
.stream()
.parallel()
.collect(Collectors.toList());
System.out.println(l);
uscita:
Parallel Stream:
8 1 6 2 7 4 5 3
[1, 2, 3, 4, 5, 6, 7, 8]
grazie! Ottima spiegazione –