List<HashMap<String,Object>> dataList =?new ArrayList<HashMap<String,Object>>();HashMap<String,Object>hashMap = new HashMap<String, Object>();? ? for(int i=0; i<5; i++){? ? hashMap.put("pic1", R.drawable.ic_launcher);? ? ? ? hashMap.put("text1", "items"+i);? ? ? ? dataList.add(hashMap);? ? }執(zhí)行之后為什么?dataList 里,"text1"字段 都是 items4 ?而不是我預(yù)期的 item0 item1 ... item4
2 回答
已采納

丶小八戒
TA貢獻(xiàn)18條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)Key值只能對(duì)應(yīng)一個(gè)Value。
這里items0 items1 .. items4 的Key值都是text1,造成的后果就是后面的Value覆蓋前面的Value。
所有你取Key值為text1的Value值都是items4
可以這樣改
hashMap.put("text"+i, "items"+i);
// 打印List的元素
for(int i = 0; i < dataList.size(); i++){
System.out.println(dataList.get(i).get("text"+i));
}

orangesweet
TA貢獻(xiàn)9條經(jīng)驗(yàn) 獲得超4個(gè)贊
。。。因?yàn)楫?dāng)鍵是“一樣”的時(shí)候,值會(huì)進(jìn)行覆蓋,這個(gè)具體請(qǐng)參考java的數(shù)據(jù)結(jié)構(gòu) HashMap
添加回答
舉報(bào)
0/150
提交
取消