java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重
2021-01-23 01:12
标签:分组 max ima list() comparing member 最小 distinct date 1.分组 2.过滤 3.求和 4.最值 5.排序 6.去重 7.获取list某个字段组装新list java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重 标签:分组 max ima list() comparing member 最小 distinct date 原文地址:https://www.cnblogs.com/ZCWang/p/12886708.html
通过groupingBy分组指定字段
list.stream().collect(Collectors.groupingBy(User::getSex));
通过filter方法过滤某些条件
list.stream().filter(a -> !a.getJobNumber().equals("201901")).collect(Collectors.toList());
基本类型:先mapToInt,然后调用sum方法
List.stream().mapToInt(User::getAge).sum();
大数类型:reduce调用BigDecimal::add方法
List.stream().map(User::getFamilyMemberQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
最大值
List.stream().map(User::getEntryDate).max(Date::compareTo).get();
最小值
List.stream().map(User::getEntryDate).min(Date::compareTo).get();
list.stream().sorted((o1, o2)->o1.getItem().getValue().
compareTo(o2.getItem().getValue())).
collect(Collectors.toList());sort()
单字段排序,根据id排序 list.sort(Comparator.comparing(Obj::getItem));
多字段排序,根据id,年龄排序 list.sort(Comparator.comparing(Obj::getItem).thenComparing(Obj::getItem));
通过distinct方法
List.stream().distinct().collect(Collectors.toList());
对属性
重写方法
List.stream().map(a -> a.getId()).collect(Collectors.toList());
上一篇:C# Stack 集合学习
下一篇:python——平时遇到问题记录
文章标题:java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重
文章链接:http://soscw.com/index.php/essay/45669.html