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()); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix