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

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

通過使用 java 流 api 的比較器對地圖的值進行排序

通過使用 java 流 api 的比較器對地圖的值進行排序

當年話下 2023-06-04 15:35:30
我有 aMap并且想通過Comparator將結果放入 a來對值進行排序LinkedHashMap。Map<String, User> sorted = test.getUsers()                 .entrySet()                 .stream()                 .sorted(Map.Entry.comparingByValue(SORT_BY_NAME))                 .collect(LinkedHashMap::new, (map, entry) -> map.put(entry.getKey(), entry.getValue()),                         LinkedHashMap::putAll); test.setUsers(sorted);所有作品,但是,我想知道這是否可以簡化。實際上我創建了一個新的Map并將它Map放入setUsers(). 我可以直接更改流而不創建新的嗎LinkedHashMap?使用Collections.sort(Comparator),列表直接排序。但是,Collections.sort不適用于地圖。
查看完整描述

2 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

為什么不使用Collectors.toMap()?

.collect(Collectors.toMap(
        Entry::getKey,
        Entry::getValue,
        (a, b) -> { throw new AssertionError("impossible"); },
        LinkedHashMap::new));


查看完整回答
反對 回復 2023-06-04
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您不能對不支持數組樣式索引的集合執行就地排序,因此對于映射來說這是不可能的(除非您在 a 上使用類似選擇排序的東西,但那將是一個壞主意)LinkedHashMap。創建新地圖是不可避免的。不過,您仍然可以按照 shmosel 的回答來簡化它。



查看完整回答
反對 回復 2023-06-04
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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