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

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

如何從 `List<Map.Entry<K,V>>` 構建 Java `Map<K,V>`?

如何從 `List<Map.Entry<K,V>>` 構建 Java `Map<K,V>`?

米脂 2022-01-12 15:18:32
我有一個List<Map.Entry<Long, String>>.如何將其轉換為Map?目前我正在執行以下操作,但似乎有點冗長(最重要的是,它不是“流利的”,即單個表達式,但需要代碼塊)。Map<Long, String> result = new HashMap<>();entries.forEach(e -> result.put(e.getKey(), e.getValue()));return result;Java 10 沒問題。
查看完整描述

2 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

展平它:


Map<Long, String> result = 

    entries.stream()

        .collect(toMap(e -> e.getKey(), e -> e.getValue(), (a, b) -> b);

這(a, b) -> b意味著將采用重復鍵的最后一個值,這與您當前方法的語義相匹配。


查看完整回答
反對 回復 2022-01-12
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

如果您確定沒有重復鍵,這就足夠了:

Map<Long, String> result = entries.stream().collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));

如果可能有重復,您必須添加一個合并函數來處理它們。


查看完整回答
反對 回復 2022-01-12
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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