无法从另一个hashmap中嵌入的hashmap中检索值

时间:2015-11-25 06:38:14

标签: java android arraylist collections

我在arraylist中有以下格式的数据:

ArrayList<HashMap<String, HashMap<String, String>>>  data;

我正在从JSON中检索数据并将它们绑定在arraylist中。这个arraylist的样本值是:

11-25 11:55:19.968: I/System.out(16451): Arraylist-->[{0={personid=64, personname=Biki Poddar, personage=19, personimage=1448347571_u.png, dogimage=1448347571_dog.png, dogname=sog, dogage=12}}, {1={personid=48, personname=Aron, personage=23, personimage=1447653750_u.png, dogimage=1447757386_dog.jpg, dogname=doggy, dogage=12}}, {2={personid=46, personname=Aron, personage=23, personimage=1447653797_u.png, dogimage=1447477714_dog.jpg, dogname=doggy, dogage=12}}, {3={personid=24, personname=name, personage=22, personimage=1447321030_u.jpg, dogimage=1447755229_dog.jpg, dogname=tommy123, dogage=0}}, {4={personid=45, personname=Aron, personage=23, personimage=1447653811_u.png, dogimage=1447318926_dog.jpg, dogname=doggy, dogage=12}}, {5={personid=44, personname=Aron, personage=23, personimage=1447653821_u.png, dogimage=1447318926_dog.jpg, dogname=doggy, dogage=12}}, {6={personid=43, personname=Aron, personage=23, personimage=1447653841_u.png, dogimage=1447318926_dog.jpg, dogname=doggy, dogage=12}}, {7={personid=40, personname=Aron, personage=23, personimage=1447653881_u.png, dogimage=1447318926_dog.jpg, dogname=doggy, dogage=12}}]

现在我尝试从适配器中的arraylist中检索值:

HashMap<String, HashMap<String, String>> resultp = new HashMap<String, HashMap<String, String>>();
resultp = data.get(position);

数据是:

ArrayList<HashMap<String, HashMap<String, String>>>  data;

resultp 的结果:

11-25 11:55:20.128: I/System.out(16451): resultp--->{0={personid=64, personname=Biki Poddar, personage=19, personimage=1448347571_u.png, dogimage=1448347571_dog.png, dogname=sog, dogage=12}}

现在我想在 resultp 中获取hashmap的值,我不能这样做。我尝试了几种方法,使用entryset以及创建新的hashmap 等等,但我什么都没有。请帮忙。

2 个答案:

答案 0 :(得分:0)

这个for-each循环获取resultp

中的每个HashMap条目
for (String key : resultp.keySet()) { /* This line will get you every key (0, 1,2 3...)*/
   HashMap<String, String> entry = resultp.get(key); /*This line will get you every entry for each key*/

   for (String secondKey : entry.keySet()) { /*This line will get you every key for your entry 0, 1, 2 etc */
        String content = entry.get(secondKey);/* Do what you want with the result */
   }
}

答案 1 :(得分:0)

您的初始数据结构是一个数组列表,因此您可以通过索引检索成员。 (data.get(index))

由于列表中包含地图,因此上述操作的结果是地图。

现在将resultp视为具有String类型的键和值作为对象的映射(在本例中为另一个映射)。使用resultp.get(key)将返回类型为HashMap<String, String>

的对象
 HashMap<String, String> innerMap = resultp.get(key);

现在这是最里面的地图,通常的地图操作将适用。