Ваш Collector
не знает, что вы используете параллельную коллекцию, предоставленную Supplier
, просто добавьте характеристику и убедитесь, что она выполняется так, как вы хотите; например:
String s = Stream.of(1, 2, 3, 4).parallel()
.unordered()
.collect(
Collector.of(
() -> new ConcurrentLinkedQueue<>(),
(c, e) -> c.add(e.toString()),
(c1, c2) -> {
c1.addAll(c2);
return c1;
},
Characteristics.CONCURRENT))