首頁 > Java > java教程 > 如何在 Java 8 中有效地將列表轉換為映射?

如何在 Java 8 中有效地將列表轉換為映射?

DDD
發布: 2024-12-28 10:32:09
原創
986 人瀏覽過

How Can I Efficiently Convert a List to a Map in Java 8?

Java 8 列表轉換解決方案轉換為Map

在Java 8 中,可以使用串流操作有效率地將物件清單轉換為映射。考慮以下場景,我們想要將 Choice 物件清單對應到 Map 物件。基於 Choice 物件的名稱欄位。

傳統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()));
登入後複製

程式碼分解

  • choices.stream()從輸入清單建立一個流choice.
  • Collectors.toMap()是一個將元素累積到映射中的收集器。它需要兩個參數:

    • Choice::getName:從每個 Choice 物件中提取映射鍵(名稱)的函數。
    • Function.identity():傳回的函數輸入物件本身,在本例中是 Choice 物件。

透過使用 Collectors.toMap() 收集器,我們可以有效地將每個名稱欄位對應到產生的對應結果中對應的 Choice 物件。這種方法簡化了映射過程,避免了手動循環迭代和映射建置的需要。

以上是如何在 Java 8 中有效地將列表轉換為映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板