为了账号安全,请及时绑定邮箱和手机立即绑定

关于HashMap存储问题

关于HashMap存储问题

Veritas丶 2015-06-19 08:10:40
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);    }执行之后为什么 dataList 里,"text1"字段 都是 items4  而不是我预期的 item0 item1 ... item4
查看完整描述

2 回答

已采纳
?
丶小八戒

TA贡献18条经验 获得超7个赞

一个Key值只能对应一个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));

}


查看完整回答
1 反对 回复 2015-06-19
?
orangesweet

TA贡献9条经验 获得超4个赞

。。。因为当键是“一样”的时候,值会进行覆盖,这个具体请参考java的数据结构 HashMap

查看完整回答
1 反对 回复 2015-06-19
  • 2 回答
  • 1 关注
  • 1618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信