17 Stimmen

wie man eine Liste wie List<Map<String,Object>> iteriert

Ich habe eine Methode, die Folgendes zurückgibt List<Map<String,Object>> .

Wie kann man über eine Liste iterieren? List<Map<String,Object>> ?

36voto

WhiteFang34 Punkte 69056

Es hört sich an, als ob Sie nach so etwas suchen:

List<Map<String, Object>> list; // this is what you have already

for (Map<String, Object> map : list) {
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        String key = entry.getKey();
        Object value = entry.getValue();
    }
}

10voto

dertkw Punkte 7678
List<Map<String, Object>> list = getMyMap();    
for (Map<String, Object> map : list) {
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        System.out.println(entry.getKey() + " - " + entry.getValue());
    }
}
  1. Schleife durch die Liste der Karten
  2. Karteneinträge behandeln

6voto

Am1rr3zA Punkte 6461

Mit Java 1.8 (8) können Sie es wie folgt umschreiben:

list.forEach(item -> 
                item.forEach((k, v) -> System.out.println(k + ": " + (String)v)
    );

5voto

Ich zeige Ihnen ein einfaches Beispiel für List<Map<String,Object>> .

    public static void main(String[] args){

    Map<String,Object> map1 = new HashMap<>();
    map1.put("Map1 Key1", (Object) "Map1 value1");
    map1.put("Map1 Key2", (Object) "Map1 value2");

    Map<String,Object> map2 = new HashMap<>();
    map2.put("Map2 Key1", (Object) "Map2 value1");
    map2.put("Map2 Key2", (Object) "Map2 value2");

    List<Map<String,Object>> list = new ArrayList<>();
    list.add(map1);
    list.add(map2);

    list.stream().forEach(mapsData->{
        mapsData.entrySet().forEach(mapData->{
            System.out.println("Key:"+mapData.getKey()+ " Value:"+mapData.getValue());
        });
    });
}

2voto

npinti Punkte 51030

Das sollte funktionieren:

List<Map<String, Object>> list = ...

for (Map<String, Object> map : list)
{
     ...
}

Sie können auch eine Iterator oder die bekommen. Methode innerhalb einer for-Schleife, um auf die Elemente in der Liste zuzugreifen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X