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

posted @ 2022-09-22 19:30  1156740846  阅读(35)  评论(0编辑  收藏  举报