У меня есть этот кусок кода:ява intstream данных Опуская параллельный цикл
ArrayList<ArrayList<Double> results = new ArrayList<ArrayList<Double>();
IntStream.range(0, 100).parallel().forEach(x ->{
for (int y = 0; y <100;y++){
for (int z = 0; z <100;z++){
for (int q = 0; q <100;q++){
results.add(someMethodThatReturnsArrayListDouble);
}
}
}
});
System.out.println(results.size());
После выполнения этого кода, я получаю всегда разные results.size()
, всегда несколько короткий. Любая идея, почему это и как ее исправить?
'ArrayList' не является потокобезопасным. – khelwood
Вы должны прочитать раздел о побочных эффектах в [документации] (https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html#Statelessness) ... – assylias