Heim >Java >javaLernprogramm >Wie kann ich in Java 8 mithilfe von Streams eine Liste in eine Karte konvertieren?

Wie kann ich in Java 8 mithilfe von Streams eine Liste in eine Karte konvertieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-21 00:49:10491Durchsuche

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

Java 8: Liste konvertieren zu Map

In Java 8 und höher können Sie mithilfe der leistungsstarken Stream-API und Lambdas problemlos eine Liste von Objekten in eine Karte konvertieren, ohne auf Bibliotheken von Drittanbietern angewiesen zu sein. Ändern wir das Java 7-Beispiel:

private Map<String, Choice> nameMap(List<Choice> choices) {
    Map<String, Choice> hashMap = choices.stream()
        .collect(Collectors.toMap(Choice::getName, Function.identity()));
    return hashMap;
}

Das passiert in diesem Code:

  1. Die stream()-Methode erstellt einen Stream von Choice-Objekten aus der ursprünglichen List .
  2. Die Methode „collect()“ beendet den Stream und sammelt die Elemente in einem Karte.
  3. Der Collectors.toMap()-Kollektor wird zum Erstellen der Karte verwendet. Es werden zwei Argumente benötigt:

    • Das erste Argument ist eine Funktion, die jedes Element im Stream dem Schlüssel der Zuordnung zuordnet. Hier wird Choice::getName verwendet, um jede Auswahl ihrem Namen zuzuordnen.
    • Das zweite Argument ist eine Funktion, die jedes Element im Stream dem Wert der Zuordnung zuordnet. In diesem Fall wird Function.identity() verwendet, um die ursprüngliche Auswahl als Wert beizubehalten.
  4. Die resultierende Map wird in der hashMap-Variablen gespeichert und zurückgegeben.

Dieser Ansatz nutzt Java 8-Streams, um prägnanten und effizienten Code für die Konvertierung von Listen in Karten zu schreiben.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java 8 mithilfe von Streams eine Liste in eine Karte konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn