首頁 >Java >java教程 >如何使用串流和 Lambda 有效地將 Java 清單轉換為對應?

如何使用串流和 Lambda 有效地將 Java 清單轉換為對應?

Patricia Arquette
Patricia Arquette原創
2024-12-16 13:38:10629瀏覽

How Can I Efficiently Convert a Java List to a Map Using Streams and Lambdas?

轉換Java 清單到地圖使用Java 8 Streams 和Lambda

背景:

背景:

背景: >

將物件清單轉換為映射是一項常見任務。 Java 7 及更低版本要求使用 for-each 迴圈進行命令式編碼。在 Java 8 中,使用串流和 lambda 提供了簡潔而優雅的解決方案。
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 7 解決方案:

Map<String, Choice> result =
    choices.stream().collect(Collectors.toMap(Choice::getName,
                                              Function.identity()));
不使用 Guava 的 Java 8 解:

使用 Guava 的 Java 8 解:類,可以在單一流中完成轉換操作:這裡,Choice::getName 檢索名稱鍵,Function.identity() 保留值。

以上是如何使用串流和 Lambda 有效地將 Java 清單轉換為對應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn