第一个用到的:
求的最小值;
private static minResult getMinResult(List<minResult> list){
Optional<minResult > userOp= list.stream().min(Comparator.comparingInt(minResult ::getNumber));
minResult maxEmp = userOp.get();
return maxEmp;
}
第二次用:
synchronized (classs){
List<SYSCLASS> list = employees.stream()
.filter((SYSCLASS b) -> b.getClasss().contains(classs))
.collect(Collectors.toList());
过滤:filter
if(list.size()==0) {
result.error500("未找到对应实体");
}else {
result.setResult(list);
result.setSuccess(true);
}
}
第三次用:
很显然是一个去重;
去重还可以用distingct,貌似需要在模型中实现equals和hashcode.
List<Library> unique = pageList.getRecords().stream().collect(
collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(Library::getLibrary))),
ArrayList::new));
第四次用:
Map<String, List<Library>> groupBy = pageList.getRecords().stream().collect(Collectors.groupingBy(Library::getLibrary));
一个list转map集合的操作,一个代码省略了2个循环判断的操作
//方法2:直接转map,用car_id作为key,car_id重复时,取id最大的记录;
Map<Integer, Demo> groupMap = list.parallelStream().collect(Collectors.toMap(Demo::getCarId, a -> a, (k1, k2) -> k1.id > k2.id ? k1 : k2));(转载的,没用过)
分享一个写的比较浅显易懂的博客https://blog.csdn.net/qq_43563538/article/details/97912937