Java 8-Lösung zum Konvertieren von Listen
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
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; }
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()));
Aufschlüsselung des Codes
Collectors.toMap() ist ein Collector, der Elemente in einer Karte sammelt. Es werden zwei Argumente benötigt:
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!