stream
小于 1 分钟languagejava
去重并自动编号
public static void main(String[] args) {
// 演示去重后转MAP
class Process{
public String processName;
public String sid;
public Process(String processName, String sid){
this.processName = processName;this.sid = sid;
}
}
Process p01 = new Process("染料","1001");
Process p02 = new Process("染料","1002");
Process p03 = new Process("助剂","1003");
Process p04 = new Process("助剂","1004");
List<Process> list = new ArrayList<>();
list.add(p01);list.add(p02);list.add(p03);list.add(p04);
AtomicInteger i = new AtomicInteger();
Map<String, Integer> collect = list.stream().map(item -> item.processName).distinct()
.collect(Collectors.toMap(item -> item, item -> i.incrementAndGet()));
System.out.println(collect);
}
创建 stream 对象

常用的操作方法

中间操作

终端操作

并行流

特性
修改原数据
public static void main(String[] args) {
// 演示 stream 的使用
Map<String,Integer> map1 = new HashMap<>();
map1.put("id",1);
map1.put("age",11);
List<Map<String,Integer>> list = new ArrayList<>();
list.add(map1);
Map<String,Integer> map2 = new HashMap<>();
map2.put("id",2);
map2.put("age",12);
list.add(map2);
System.out.println("原始集合:" + list.toString());
List<Map<String, Integer>> newList = list.stream().map(item -> {
item.put("age", item.get("age") + 1);
return item;
}).collect(Collectors.toList());
System.out.println("lamda后原集合:" + list.toString());
System.out.println("lamda返回的新集合:" + newList.toString());
}
// 打印结果:
原始集合:[{id=1, age=11}, {id=2, age=12}]
lamda后原集合:[{id=1, age=12}, {id=2, age=13}]
lamda返回的新集合:[{id=1, age=12}, {id=2, age=13}]
实践案例

