2014-12-22 12 views
-7

У меня есть список, который выглядит следующим образом:Как перебрать ArrayList в Java

List newMap = (ArrayList) map.get("programs"); 
System.out.print(newMap); //JSON data 

На печать выше, я получаю:

[{program_id=PR1, service_ids=[1, 2]}, {program_id=PR4, service_ids=[14, 15]}] 

Теперь мой вопрос, как я итерацию через этот список и получить значения на основе ключей? Я имею в виду что-то вроде строк newMap[0]["program_id"], а затем я должен получить PR1.

код Я пробовал:

for (Object obj : newMap){ 
     var temp = newMap[0].get("program_id"); //Can't do this because "Array type expected, found java.util.List" 
    } 
+0

Просьба поделиться структурой вашей картой и является то, что вы ищете List Список типов: ..? – Abhishek

ответ

0

Поскольку newMap является список, вы бы получить доступ к его элемент с newMap.get(i).

Похоже, что каждый элемент списка представляет собой карту.

Таким образом, вы можете получить значение конкретного ключа таким образом:

newMap.get(i).get("program_id") 

Если вы хотите пройти по списку и получить значение определенного ключа в каждой карте:

for (Map obj : newMap) { 
    Object value = obj.get("program_id"); 
} 

Обратите внимание, что вам не следует работать с необработанными типами. Я использовал только исходный тип Map, потому что я не знаю тип данных, хранящихся на этой карте.

+0

Данные все строки, поэтому я думаю, что это должно сработать. Спасибо! – lalaland

0

Вы можете попробовать это

newMap[0].get("program_id"); 
+0

Что будет выглядеть для цикла for в этом случае? Будет ли это «for (Object obj: newMap)» или что-то еще? – lalaland