corriente y paralelo

Tengo un código de prueba como este:

List<Integer> list = new ArrayList<>(1000000);

for(int i=0;i<1000000;i++){
    list.add(i);
}

List<String> values = new ArrayList<>(1000000);

list.stream().forEach(
    i->values.add(new Date().toString())
);

System.out.println(values.size()); 

Al ejecutar esto, obtuve una salida correcta: 1000000.

Sin embargo, si cambio elstream() aparallelStream(), como este:

 list.parallelStream().forEach(
    i->values.add(new Date().toString())
 );

Obtuve una salida aleatoria, por ejemplo: 920821.

Que pasa

Respuestas a la pregunta(3)

Su respuesta a la pregunta