2017-01-22 4 views
-2

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

Как перебрать карту как Map<String, List<Map<String, Object>>>

+0

Вероятно, это отвечает здесь: http://stackoverflow.com/questions/46898/how-to-efficiently-iterate-over-each-entry-in-a-map#46908 –

+1

Что вам нужно делать, повторяя эту карту? что ты уже испробовал? –

+0

Существует список <Карта > внутри Map.There я сбиваю с толку итерацию –

ответ

3

Вы бы итерацию над ним, как вы бы перебрать все остальные карты. Вам просто нужно «рекурсивно» перебирать список и другой Aap внутри цикла итерации.

Один из возможных способов (без функционального кода):

Map<String, List<Map<String, Object>>> yourMap = ...; 
//iterate over outer map 
for(Map.Entry<String, List<Map<String, Object>>> topEntry : yourMap.entrySet()) { 
    String topKey = topEntry.getKey(); 
    //iterate over list 
    for(Map<String, Object> innerMap : topEntry.getValue()) { 
    //iterate over inner map 
    for(Map.Entry<String, Object> innerEntry : innerMap.entrySet()) { 
     String innerKey = innerEntry.getKey(); 
     Object innerValue = innerEntry.getValue(); 
    } 
    } 
} 

Вы также можете переключить итерации цикла Еогеаспа по списку к петле Фори [for(int i=0; i<list.size(); i++)], если вам нужно знать список-индекс.

+0

Я получаю ошибку в 'yourMap.entrySet()' –

+0

И что это за ошибка? вы определили карту или это просто нуль? –

-1
for(Map.Entry<String, List<Map<String, Object>>> entry : map.entrySet()) { 
    System.out.println(entry.getKey() + " : " + entry); 
} 
Смежные вопросы