课程
/移动开发
/Android
/Android攻城狮的第二门课(第1季)
Map<String,Object>map = new HashMap<String,Object>();为什么这行代码写在for循环外面和里面的效果不一样?
2015-08-08
源自:Android攻城狮的第二门课(第1季) 2-6
正在回答
我开始也遇到了这个问题
不是只有一个map数据,而是会有20个同样的数据,也就是20个 图片+最后一个文字
造成这样的原因是:
如果new在循环外面,那循环里面只有一个map存在
用Arraylist.add添加时,会加入一个map,同时改变其他的map的数据(因为都是同一个map)
最后就会出现20个一样的map在list里。
而把实例化map放在循环里面,则每次都添加的一个新的map,互不干涉,才会得到正确的结果。
写在里面每次循环都会创建一个map,所有循环20次才会有20个数据出来。如果写在外面只会创建1个map,则最好返回的list只有1个map数据了。
举报
本课程由浅入深地带您学会Android的常用控件的开发和使用