как перебрать список вроде List <Map <String, Object >> - PullRequest
6 голосов
/ 26 апреля 2011

У меня есть метод, который возвращает List<Map<String,Object>>.

Как перебрать список вроде List<Map<String,Object>>?

Ответы [ 7 ]

21 голосов
/ 26 апреля 2011

Похоже, вы ищете что-то вроде этого:

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();
    }
}
6 голосов
/ 26 апреля 2011
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. Прокрутка списка карт
  2. Обработка записей на карте
2 голосов
/ 02 августа 2018

Я публикую вам один простой пример 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());
        });
    });
}
1 голос
/ 08 марта 2017
    Map<String, String> map = new HashMap<>();
    map.put("First", "1");
    map.put("Second", "2");
    map.put("third", "3");
    map.put("four", "4");

    // here is the logic 
    for (Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println(entry.getKey() + " - " + entry.getValue());
    }
1 голос
/ 07 декабря 2016

с Java 1.8 (8) вы можете переписать это как:

list.forEach(item -> 
                item.forEach((k, v) -> System.out.println(k + ": " + (String)v)
    );
1 голос
/ 26 апреля 2011

Это должно работать:

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

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

Вы также можете использовать итератор или get в цикле for для доступа к элементам в списке.

0 голосов
/ 22 января 2019

Это простой способ перебора списка карт в качестве отправной точки. В моем списке был один объект Map с тремя значениями

List<Map<String, Object>>

используя функциональное программирование на Java довольно кратко и лаконично. Цель здесь состояла в том, чтобы вытащить все карты, хранящиеся в списке, и распечатать их. Я мог бы также собрать значения и т. Д.

answerListOfMaps.stream().map(map -> map.entrySet())
        .forEach(System.out::println );

вывод в консоли Eclipse IDE выглядел так:

[isAllowed=true, isValid=true, cardNumber=672xxxxxxxxxxx]

х для запутывания

альтернативный путь:

answerListOfMaps.stream().flatMap(map -> map.entrySet().stream())
        .forEach( entry -> System.out.println(entry.getKey() + ":" + entry.getValue()) );

Консоль

isAllowed:true
isValid:true
cardNumber:672xxxxxxxxxxx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...