偷师,每天一种Stream
一、最基础的Stream流
imageTypePoList.stream()
.distinct() //去重参数
.filter(imageTypePo -> imageTypePo.getImageTypeCode() == "CLM101") //过滤
.forEach(imageTypePo -> System.out.println(JSON.toJSON(imageTypePo))); //输出
中间操作
filter:过滤的作用,符合条件的才能进入流
imageTypePoList.stream()
.anyMatch() //任意一个符合就返回 true
imageTypePoList.stream()
.allMatch() //可以用来判断是否都符合匹配条件,结果为boolean类型。如果都符合结果为true,否则结果为false。
转换对象使用
List<ServiceIdVo> collect = serviceCDDOS.stream().map(serviceCDDO -> {
ServiceIdVo serviceIdVo = new ServiceIdVo();
serviceIdVo.setServiceId(serviceCDDO.getServiceId());
serviceIdVo.setServiceName(serviceCDDO.getServiceName());
return serviceIdVo;
}).collect(Collectors.toList());
stream流排序-2024-05-18 补充
List<ApplicationEnquirieVo> collect1 = data.stream()
//排序 Comparator.comparing 首先拿状态 、其次拿时间 倒叙排序
.sorted(Comparator.comparing((ApplicationEnquirieVo::getStatus))
.thenComparing(ApplicationEnquirieVo::getValidateDate).reversed())
.collect(Collectors.toList());
List<ApplicationEnquirieVo> collect1 = data.stream()
//排序 Comparator.comparing 首先拿状态 、其次拿时间 正排序
.sorted(Comparator.comparing((ApplicationEnquirieVo::getStatus))
.thenComparing(ApplicationEnquirieVo::getValidateDate))
.collect(Collectors.toList());
List<ApplicationEnquirieVo> collect = data.stream()
//排序 Comparator.comparing 首先拿出不等于 23 的数据
.sorted(Comparator.comparing((ApplicationEnquirieVo vo) -> !vo.getStatus().equals("23"))
//其次根据属性来排序
.thenComparing(ApplicationEnquirieVo::getStatus)
//其次根据属性来排序
.thenComparing(ApplicationEnquirieVo::getValidateDate))
.collect(Collectors.toList());