亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 java 8 按“名稱”對對象進行分組?

如何使用 java 8 按“名稱”對對象進行分組?

慕標5832272 2023-09-27 17:21:46
我有DTO一些屬性,例如id、name、desc等。它的所有屬性都有 getter 和 setter。我從服務中得到一個Page<MyDto>,我需要根據屬性對 DTO 進行分組name。首先,我使用轉換Page<MyDto>為。List<MyDto>page.getContent我需要通過使用對其進行分組來將其轉換List為Map<String, Object> (不是Map<String,String>)。namesJava8我找到了一些例子,但它們沒有解決我的問題。如何將MyDto列表分組到地圖中?其中鍵是名稱 ( String),值是Array<MyDto>每個名稱的一個。例如:If `List<MyDto>` is : [{"id":1, "name":"albert", "desc":"science"},{"id":2, "name":"george", "desc":"econ"},{"id":3, "name":"christ", "desc":"math"},{"id":4, "name":"george", "desc":"literature"} // george repeats twice]輸出Map應該是:{"george":[{"id":2, "name":"george", "desc":"econ"},{"id":4, "name":"george", "desc":"literature"} ],"christ":[{"id":3, "name":"christ", "desc":"math"}],"albert":[{"id":1, "name":"albert", "desc":"science"}]}
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

只需使用Collectors::groupingBy并將方法引用傳遞給MyDto::getName將用作地圖鍵的方法:


List<MyDto>?dtos?=?...
Map<String,?List<MyDto>>?map?=?dtos.stream()
????????????.collect(Collectors.groupingBy(MyDto::getName));


查看完整回答
反對 回復 2023-09-27
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號