Java 8 列表轉換解決方案
在Java 8 中,可以使用串流操作有效率地將物件清單轉換為映射。考慮以下場景,我們想要將 Choice 物件清單對應到 Map
傳統Java 7 方法
在Java 7 中,我們通常會使用for-each 循環並手動構造映射:
private Map<String, Choice> nameMap(List<Choice> choices) { final Map<String, Choice> hashMap = new HashMap<>(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
Java 8 流方法
Java 8流提供了一種更簡潔、更具表現力的方式來完成此任務:
Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
程式碼分解
Collectors.toMap()是一個將元素累積到映射中的收集器。它需要兩個參數:
透過使用 Collectors.toMap() 收集器,我們可以有效地將每個名稱欄位對應到產生的對應結果中對應的 Choice 物件。這種方法簡化了映射過程,避免了手動循環迭代和映射建置的需要。
以上是如何在 Java 8 中有效地將列表轉換為映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!