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

Map<String,Object>map 实例化的位置不一样导致list取出来的结果不一样

Map<String,Object>map = new HashMap<String,Object>();为什么这行代码写在for循环外面和里面的效果不一样?

正在回答

2 回答

我开始也遇到了这个问题

不是只有一个map数据,而是会有20个同样的数据,也就是20个  图片+最后一个文字

造成这样的原因是:

如果new在循环外面,那循环里面只有一个map存在

用Arraylist.add添加时,会加入一个map,同时改变其他的map的数据(因为都是同一个map)

最后就会出现20个一样的map在list里。


而把实例化map放在循环里面,则每次都添加的一个新的map,互不干涉,才会得到正确的结果。

0 回复 有任何疑惑可以回复我~

写在里面每次循环都会创建一个map,所有循环20次才会有20个数据出来。如果写在外面只会创建1个map,则最好返回的list只有1个map数据了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111172    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

Map<String,Object>map 实例化的位置不一样导致list取出来的结果不一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信