objects - list replaceall java




Wie konvertiert man eine Map in eine Liste in Java? (10)

Was ist der beste Weg, um einen Map<key,value> in einen List<value> zu konvertieren? Einfach über alle Werte iterieren und sie in eine Liste einfügen oder übersehe ich etwas?


Das Problem hierbei ist, dass Map zwei Werte (einen Schlüssel und einen Wert) hat, während eine List nur einen Wert (ein Element) hat.

Daher ist es am besten, entweder eine List der Schlüssel oder der Werte zu erhalten. (Es sei denn, wir machen einen Wrapper, um das Schlüssel / Wert-Paar zu behalten).

Sagen wir, 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 können erhalten werden, indem eine neue ArrayList aus einem Set wird, das von der Map.keySet Methode zurückgegeben wird:

List<String> list = new ArrayList<String>(m.keySet());

Während die Werte als List abgerufen werden können, erstellen Sie eine neue ArrayList aus einer Collection von der Map.values Methode zurückgegeben wird:

List<String> list = new ArrayList<String>(m.values());

Das Ergebnis des Erhaltens der List der Schlüssel:

Apple
Another
Hello

Das Ergebnis des Erhaltens der List der Werte:

3.14
Element
World

Du kannst es so machen

List<Value> list = new ArrayList<Value>(map.values());

Ich nehme an, dass Sie die in der Map enthaltenen Werte in eine list konvertieren möchten. Am einfachsten ist es, die values() -Methode der Map Schnittstelle aufzurufen. Dadurch wird die Collection der in der Map enthaltenen Wertobjekte zurückgegeben.

Beachten Sie, dass diese Auflistung vom Map Objekt unterstützt wird und alle Änderungen am Map Objekt hier widerspiegeln. Wenn Sie also eine separate Kopie erstellen möchten, die nicht an Ihr Map Objekt gebunden ist, erstellen Sie einfach ein neues List Objekt wie eine ArrayList übergeben den Wert Collection wie folgt.

ArrayList<String> list = new ArrayList<String>(map.values());

Verwenden der Java 8-Stream-API.

List<Value> values = map.values().stream().collect(Collectors.toList());

eine Liste von was?

Angenommen, map ist Ihre Instanz von Map

  • map.values() gibt eine Collection die alle Werte der Map enthält.
  • map.keySet() gibt ein Set das alle Schlüssel der Map enthält.

map.entrySet() gibt Ihnen eine Sammlung von Map.Entry Objekten, die sowohl Schlüssel als auch Wert enthalten. Sie können dies dann in jedes beliebige Sammlungsobjekt umwandeln, z. B. in eine new ArrayList(map.entrySet()) .


    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("java", 20);
    map.put("C++", 45);

    Set <Entry<String, Integer>> set = map.entrySet();

    List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(set);

Wir können sowohl Schlüssel- als auch Wertpaare in der Liste haben. Außerdem können Schlüssel und Wert mit Map.Entry durch Iterieren über die Liste abgerufen werden.


"Map<String , String > map = new HapshMap<String , String>;
 map.add("one","java");
 map.add("two" ,"spring");
 Set<Entry<String,String>> set =  map.entrySet();
 List<Entry<String , String>> list = new ArrayList<Entry<String , String>>    (set);
 for(Entry<String , String> entry : list ) {
   System.out.println(entry.getKey());
   System.out.println(entry.getValue());
 } "

Comparator<String> comparator = new Comparator<String>() {

    @Override
    public int compare(String s1, String s2) {
        if (s1 == s2) {
            return 0;
        }

        if (s1 == null) {
            return -1;
        }

        if (s2 == null) {
            return 1;
        }

        return s1.compareToIgnoreCase(s2);
    }
};

List<Value> list = new ArrayList<Value>(map.values());

angenommen:

Map<Key,Value> map;




map