In Java 8 sind eine gemeinsame Aufgabe darin, eine Liste von Objekten mit Streams und Lambdas in eine Karte umzuwandeln. Dies kann auf verschiedene Weise erreicht werden, abhängig vom gewünschten Verhalten und der Verfügbarkeit von Bibliotheken von Drittanbietern wie Guava. Eine Liste zu einer Karte umfasste manuelle Iteration und eine handgeschriebene Schleife:
private Karte
private MapGuava mit Java 7nameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
private Karte
Guava mit Java 8 lambdas
nutzen Java 8 Lambdas vereinfacht den Code noch weiter:
private MapnameMap(List choices) { return Maps.uniqueIndex(choices, new Function () { @Override public String apply(final Choice input) { return input.getName(); } }); }
Sammler der rettungsweise
java 8's Collectors Class bietet eine robuste Implementierung für die Zuordnung von Listen auf Karten. Der Tomap -Kollektor nimmt zwei Argumente ein:
private Mapeine Schlüsselextraktionsfunktion (eine Funktion, die den Schlüssel für jedes Element abruft)nameMap(List choices) { return Maps.uniqueIndex(choices, Choice::getName); }
eine Wertextraktionsfunktion (eine Funktion, die den Wert für jedes Wert abruft Element)
In diesem Fall können wir Choice :: GetName and Function.identity () verwenden, um den Schlüssel und den Wert abzurufen:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3