Heim > Java > javaLernprogramm > Wie kann ich eine Liste in Java 8 effizient in eine Karte konvertieren?

Wie kann ich eine Liste in Java 8 effizient in eine Karte konvertieren?

DDD
Freigeben: 2024-12-28 10:32:09
Original
986 Leute haben es durchsucht

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

Java 8-Lösung zum Konvertieren von Listen in Map

In Java 8 kann die Konvertierung einer Liste von Objekten in eine Karte mithilfe von Stream-Operationen effizient erreicht werden. Stellen Sie sich das folgende Szenario vor, in dem wir eine Liste von Choice-Objekten einem Map zuordnen möchten. basierend auf dem Namensfeld der Choice-Objekte.

Traditioneller Java 7-Ansatz

In Java 7 würden wir normalerweise eine for-each-Schleife verwenden und die Karte manuell erstellen :

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;
}
Nach dem Login kopieren

Java 8 Stream-Ansatz

Java 8 Streams bieten eine prägnantere und ausdrucksstärkere Möglichkeit, diese Aufgabe zu erfüllen:

Map<String, Choice> result =
    choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
Nach dem Login kopieren

Aufschlüsselung des Codes

  • choices.stream() erstellt einen Stream aus den Auswahlmöglichkeiten der Eingabeliste.
  • Collectors.toMap() ist ein Collector, der Elemente in einer Karte sammelt. Es werden zwei Argumente benötigt:

    • Choice::getName: Eine Funktion, die den Kartenschlüssel (Namen) aus jedem Choice-Objekt extrahiert.
    • Function.identity(): Eine Funktion, die zurückgibt das Eingabeobjekt selbst, in diesem Fall das Choice-Objekt.

Durch die Verwendung von Collectors.toMap() Mit dem Kollektor ordnen wir jedes Namensfeld im resultierenden Zuordnungsergebnis effektiv dem entsprechenden Choice-Objekt zu. Dieser Ansatz vereinfacht den Mapping-Prozess und vermeidet die Notwendigkeit manueller Schleifeniterationen und Kartenerstellung.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage