Wie konvertiert man am besten eine Map<key,value>
zu einer List<value>
? Einfach alle Werte durchlaufen und in eine Liste einfügen oder übersehe ich etwas?
Antworten
Zu viele Anzeigen?Das Problem dabei ist, dass Map
hat zwei Werte (einen Schlüssel und einen Wert), während ein List
hat nur einen Wert (ein Element).
Daher ist das Beste, was man tun kann, entweder eine List
der Schlüssel oder der Werte. (Es sei denn, wir machen einen Wrapper, um das Schlüssel/Wert-Paar zu behalten).
Angenommen, wir haben eine Map
:
Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");
Die Schlüssel als List
kann durch die Erstellung eines neuen ArrayList
von einer Set
zurückgegeben von der [Map.keySet
](http://java.sun.com/javase/6/docs/api/java/util/Map.html#keySet()) Methode:
List<String> list = new ArrayList<String>(m.keySet());
Während die Werte als List
erhalten, indem man eine neue ArrayList
von einer Collection
zurückgegeben von der [Map.values
](http://java.sun.com/javase/6/docs/api/java/util/Map.html#values()) Methode:
List<String> list = new ArrayList<String>(m.values());
Das Ergebnis der Ermittlung der List
der Schlüssel:
Apple
Another
Hello
Das Ergebnis der Ermittlung der List
von Werten:
3.14
Element
World
- See previous answers
- Weitere Antworten anzeigen
1 Stimmen
Ich denke, es ist kein gutes Modell, wenn man eine Karte in eine Liste umwandeln muss. Man sollte den Code so schreiben, dass diese Situation nicht eintritt.