Stream
原创小于 1 分钟约 227 字
1. Java 并行流
相关信息
流可以是顺序的或并行的。
顺序流上的操作由一个线程串行处理。
使用多个线程并行处理并行流上的操作。
默认情况下,Streams API 中的大多数方法都会生成顺序流。要从集合(如列表或集合)创建并行流,调用 Collection 接口的 parallelStream() 方法。
对流使用 parallel() 方法将顺序流转换为并行流。
对流使用 sequential() 方法将并行流转换为顺序流。
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "12");
2. 计算
2.1. list->map 求合
List<Map<String,Integer>> list=new ArrayList<>();
for (int i = 3; i > 0; i--) {
Map<String, Integer> empty = MapUtil.of("id",4);
empty.put("id",i);
// empty.put("name",i*2);
list.add(empty);
}
System.out.println(list.parallelStream().reduce(0, (a, b) -> a + b.get("id"), Integer::sum));