JAVA8 常用Stram处理方法

JAVA8 常用Stram处理方法

排序

复制代码
List<MachineOrderResponse.BackRecord> noSList = ss.stream().sorted(Comparator.comparing(MachineOrderResponse.BackRecord::getTime).reversed()).collect(Collectors.toList());

排序对象集合属性一升序 属性二降序

复制代码
implicationHolderTableTemplateDtoList.sort(Comparator.comparing(ImplicationHolderTableTemplateDto::getaBDistinguish).thenComparing(ImplicationHolderTableTemplateDto::getAttendCnt, Comparator.reverseOrder()));

List转Map

复制代码
Map<BigDecimal, String> collect = probabilitiesList.stream().collect(Collectors.toMap(ll -> BigDecimal.valueOf(ll.getADouble()), PlayResponse.Probability::getUuid));

List分组

复制代码
Map<String, List<MachineOrderResponse.GoodsOrder>> goodMap = leaveList.stream().collect(Collectors.groupingBy(MachineOrderResponse.GoodsOrder::getProduct_id));

求和

复制代码
int totalGoodsCount = goodsLists.stream().mapToInt(PostageSettingRequest.GoodsList::getGoodsListCount).sum();

提取字符串

复制代码
String goodsName = orderGoodsList.stream().map(goods -> goods.getGoodsName() + " X " + goods.getOrderGoodsCount())
        .collect(Collectors.joining(", "));

根据属性去重

复制代码
mandataryInfoTableList = mandataryInfoTableList.stream().collect(
                collectingAndThen(
                        toCollection(() -> new TreeSet<>(Comparator.comparing(mandataryInfoTable -> mandataryInfoTable.getCertificateId() + ";" + mandataryInfoTable.getHolderName()))), ArrayList::new));

分组排序

复制代码
Map<String, List<FuzzyTrialCalculationDto>> groupMap = fuzzyTrialCalculationDtoList.stream()
        .sorted(Comparator.comparingInt(FuzzyTrialCalculationDto::getAlgorithmSort))
        .collect(Collectors.groupingBy(FuzzyTrialCalculationDto::getAlgorithmName, LinkedHashMap::new, Collectors.toList()));

求和

复制代码
int totalAge = peopleList.stream()
                .mapToInt(Person::getAge)
                .sum();
相关推荐
Boilermaker19923 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维3 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_994 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子4 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34164 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体14 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy18095 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
wszy18095 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
程序员小假6 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端
资生算法程序员_畅想家_剑魔6 小时前
Kotlin常见技术分享-02-相对于Java 的核心优势-协程
java·开发语言·kotlin