list集合之流操作

1、根据某一字段进行去重(分组)

1
List<Object> list = objectList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Object::getId))), ArrayList::new));

2、实体集合获取某一字段的合集中

1
List<Long> ids= objectList.stream().map(Object::getId).collect(Collectors.toList());

3、实体集合中的某一字段相加

1
2
3
BigDecimal addResut= objectList.stream().map(Object::getBigDecimal).reduce(BigDecimal.ZERO, BigDecimal::add);
//两束相减同理只需要修改add为subtract,那样我们就能得到加减乘除这些运算
BigDecimal subtract= objectList.stream().map(Object::getBigDecimal).reduce(BigDecimal.ZERO, BigDecimal::subtract);

4、实现排序(升序、降序、多字段排序)

1
2
3
4
5
6
7
8
9
10
//自然排序
list = list.stream().sorted().collect(Collectors.toList());
//根据年龄升序排序
list = list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());
//自然倒序
list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
//根据年龄自然倒序
list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());
//多字段排序<br>//先按姓名升序,姓名相同则按年龄升序
list = list.sorted(Comparator.comparing(Student::getName).thenComparing(Student::getAge)).collect(Collectors.toList());

  

posted @   chelsey3tsf  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示