我有一個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意味著將采用重復鍵的最后一個值,這與您當前方法的語義相匹配。

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
如果您確定沒有重復鍵,這就足夠了:
Map<Long, String> result = entries.stream().collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
如果可能有重復,您必須添加一個合并函數來處理它們。
添加回答
舉報
0/150
提交
取消