Я создал простую демонстрацию:
public static void main(String[] args) {
List<String> list2 = Arrays.asList("adf", "bcd", "abc", "hgr", "jyt", "edr", "biu");
String collect = list2.stream().collect(String::new, (res, elem) -> {
res=res.concat(" ").concat(elem);
// System.out.printf("res=%s, elem=%s\n", res.isEmpty(), elem);
}, (res1, res2) -> {
System.out.printf("res1=%s, res2=%s\n", res1, res2);
});
System.out.println("collect=" + collect);
}
Проблема состоит в том, что BiConsumer combiner часть collect не запускается вообще.
Выполняется, если я использую parallelStream(), но два аргумента res1 и res2 равны поставщику String::new.
Как сделать combiner работать в методе collect?