你的图表是不正确的-你假设每一个平行的减少从一个新的开始
StringBuilder
具有相同的标识元素
-使用相同的StringBuilder(创建并作为第一个参数传递给
reduce
每个并行流调用
StringBuilder.append
在传递给
减少
方法,从而将当前遇到的元素附加到它。
下一步是组合部分结果,也可以调用
StringBuilder.append文件
在同一个StringBuilder上,将StringBuilder内容的副本附加到自身上。
Supplier<StringBuilder>
作为reduce操作的第一个参数。
Mutable Reduction
.
collect
方法:
List<String> list = Arrays.asList("1","2","3","4","5","6",
"7","8","9","10","11","12");
String result = list.parallelStream()
.collect(StringBuilder::new, StringBuilder::append,
StringBuilder::append).toString();
System.out.println(result);