網(wǎng)站首頁(yè) java綜合 正文
java使用stream()中的reducing實(shí)現(xiàn)將名字相同的累加(合并)點(diǎn)餐數(shù)量的,早餐,午餐,晚餐(分組計(jì)算)
作者:小徐敲java 更新時(shí)間: 2024-04-05 java綜合java使用stream()中的reducing實(shí)現(xiàn)將名字相同的累加(合并)點(diǎn)餐數(shù)量的,早餐,午餐,晚餐
// 方法一
Map<String, PersonFamilyFoodOrderDTO> mergedOrders = personFamilyFoodOrderDTOList.stream()
.collect(Collectors.groupingBy(PersonFamilyFoodOrderDTO::getUserName, Collectors.reducing(SysFoodOrderController::mergeOrder)))
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().orElse(null)));
List<PersonFamilyFoodOrderDTO> collect = mergedOrders.values().stream()
.collect(Collectors.toList());
// 方法二
List<Optional<PersonFamilyFoodOrderDTO>> collect1 = personFamilyFoodOrderDTOList.stream()
.collect(Collectors.groupingBy(PersonFamilyFoodOrderDTO::getUserName,
Collectors.reducing(SysFoodOrderController::mergeOrder)))
.values().stream().collect(Collectors.toList());
private static PersonFamilyFoodOrderDTO mergeOrder(PersonFamilyFoodOrderDTO o1, PersonFamilyFoodOrderDTO o2) {
return new PersonFamilyFoodOrderDTO(o1.getUserName(),
o1.getBreakfast() + o2.getBreakfast(),
o1.getLunch() + o2.getLunch(),
o1.getDinner() + o2.getDinner(),
o1.getFamilyBreakfast() + o2.getFamilyBreakfast(),
o1.getFamilyLunch() + o2.getFamilyLunch(),
o1.getFamilyDinner() + o2.getFamilyDinner()
);
}
通過(guò)分組foodMenuDate,foodMenuType來(lái)統(tǒng)計(jì)OrderNumber總數(shù)
Map<String, Integer> sums = sysFoodOrderList.stream()
.collect(Collectors.groupingBy(p -> p.getFoodMenuDate() + "-" + p.getFoodMenuType()
,Collectors.summingInt(SysFoodOrder::getOrderNumber)));
原文鏈接:https://blog.csdn.net/qq_19891197/article/details/132231690
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-12-16 簡(jiǎn)單聊聊Go語(yǔ)言里面的閉包_Golang
- 2022-07-21 UIStackView嵌套的Label多行文字動(dòng)態(tài)高度
- 2023-07-09 echarts的series已經(jīng)為空但是還加載出數(shù)據(jù)
- 2024-03-19 Shell腳本中的條件測(cè)試命令簡(jiǎn)介
- 2022-07-24 CSP?communicating?sequential?processes并發(fā)模型_Golang
- 2022-11-24 Flutter開(kāi)發(fā)setState能否在build中直接調(diào)用詳解_Android
- 2022-10-11 ingress-nginx-url重寫(xiě)的經(jīng)驗(yàn)總結(jié)
- 2022-12-23 C++?Boost?Conversion超詳細(xì)講解_C 語(yǔ)言
- 欄目分類(lèi)
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支