網站首頁 java綜合 正文
java使用stream()中的reducing實現將名字相同的累加(合并)點餐數量的,早餐,午餐,晚餐
// 方法一
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()
);
}
通過分組foodMenuDate,foodMenuType來統計OrderNumber總數
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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-10-30 C語言struct結構體介紹_C 語言
- 2022-09-01 MongoDB實現查詢、分頁和排序操作以及游標的使用_MongoDB
- 2022-05-04 分享10提高?Python?代碼的可讀性的技巧_python
- 2022-09-25 spring如何解決循環依賴
- 2022-07-20 python出現RuntimeError錯誤問題及解決_python
- 2022-10-17 Python?實操顯示數據圖表并固定時間長度_python
- 2022-09-13 Python使用os模塊實現更高效地讀寫文件_python
- 2023-05-14 Go結構體的基本使用詳解_Golang
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支