stream默认是串行流,parrallelstream是并行流(流中的每个元素操作是并行的,没有特定的先后顺序),本质上是高级的iterator。
flatMap对于一维意味来说没有什么意义,将二维list平铺成一维。
获取流的操作可以这样:
Stream<List<Integer>> integerListStream = Stream.of(
Arrays.asList(1, 2),
Arrays.asList(3, 4),
Arrays.asList(5)
).parallel();
Stream<Integer> integerStream = integerListStream .flatMap(Collection::stream);
integerStream.forEach(System.out::println);
也可以这样:
final double factorSum = squareReady.parallelStream().mapToDouble(square->{
double factor = 1/(nSum*square.getDensity());
square.setFactor(factor);
return factor;
}).sum();
新增的String.joiner :System.out.println(String.join(", ", friends));