У меня возникли проблемы с пониманием того, почему параллельный поток и поток дают другой результат для одного и того же оператора.
List<String> list = Arrays.asList("1", "2", "3");
String resultParallel = list.parallelStream().collect(StringBuilder::new,
(response, element) -> response.append(" ").append(element),
(response1, response2) -> response1.append(",").append(response2.toString()))
.toString();
System.out.println("ResultParallel: " + resultParallel);
String result = list.stream().collect(StringBuilder::new,
(response, element) -> response.append(" ").append(element),
(response1, response2) -> response1.append(",").append(response2.toString()))
.toString();
System.out.println("Result: " + result);
Результат Параллельный: 1, 2, 3
Результат: 1 2 3
Может кто-нибудь объяснить, почему это происходит, и как я получаю непараллельную версию, чтобы дать тот же результат, что и параллельная версия?