java8中Stream的使用
list转map
Map<String, MetaTypeEntity> map = all.stream().collect(Collectors.toMap(MetaTypeEntity::getCode, old -> old));
Map<String, CountDto> map = list.stream().collect(Collectors.toMap(o -> o.getDeviceStatus() + "-" + o.getDisposalStatus(), Function.identity()));
收集单个属性
Set<String> nameSet = all.stream().map(MetaTypeEntity::getModelName).collect(Collectors.toSet());
分组收集
Map<String, Set<String>> modelMap = all.stream().collect(Collectors.groupingBy(MetaTypeEntity::getModelName, Collectors.mapping(MetaTypeEntity::getCode, Collectors.toSet())));
求和
long total = list.stream().mapToLong(DeviceSysTypeCountDto::getCount).sum();
分组求和
Map<String, Long> totalMap = list.stream().collect(
Collectors.groupingBy(CountDto::getDeviceStatus, Collectors.summingLong(CountDto::getCount)));
获取最大值
long max = list.stream().mapToLong(RegionCountDto::getCount).max().getAsLong();
过滤
Map<String, Long> disposedMap = list.stream() .filter(countDto -> DisposalStatusEnum.DISPOSED.eq(countDto.getDisposalStatus())) .collect(Collectors.toMap(CountDto::getDeviceStatus, CountDto::getCount));
BigDecimal求和
Map<String, BigDecimal> ageGroup = list.stream().collect(Collectors.groupingBy(Student::getName
, Collectors.mapping(Student::getStature, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
最大值最小值
https://blog.csdn.net/weixin_43296313/article/details/122596555
https://blog.csdn.net/weixin_40482816/article/details/115379695
java8中map新增方法详解
java8中Stream的使用
java8中Collection新增方法详解
java8中Collectors的方法使用实例
java8中常用函数式接口
java8中的方法引用和构造函数引用
java8中的Collectors.groupingBy用法
java8中的Optional用法
java8中的日期和时间API