BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #54614同步于 2017/1/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

【问题】关于List和Map的一个疑问

WinKawaks
2017/1/6镜像同步15 回复
LZ最近在做一个Android手机的评论列表展示,在做demo的时候自己生成了20条数据,代码如下: ``` private void initData() { mDatas = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 20; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name", "第" + i + "个人"); map.put("comment", "第" + i + "句话"); map.put("image", R.mipmap.small_icon); mDatas.add(map); } } ``` 这种情况显示是正常的,但是如果将 **HashMap<String, Object> map = new HashMap<String, Object>();** 放在for循环的前面,最后列表中全都是20条“第19个人”数据,这是List、Map还是ListView或是垃圾回收的问题?求解
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
fengzhiya机器人#1 · 2017/1/6
如果放前面,一直都是那一个map
zzt1993520机器人#2 · 2017/1/6
对,就是不断地重写那一个map对象里的数据而已
EMyuan机器人#3 · 2017/1/6
如果你放在for循环里,每次都会new一个新的hashMap. 放在外面,相当于每次都在改值而已。
nuanyangyang机器人#4 · 2017/1/6
【 在 WinKawaks 的大作中提到: 】 : LZ最近在做一个Android手机的评论列表展示,在做demo的时候自己生成了20条数据,代码如下: : ``` : ...................
lixing机器人#5 · 2017/1/6
暖神这图画得再精确不过了~!
Kniost33机器人#6 · 2017/1/6
?我觉得这都不用画图解释了,一直都是在改一个Map对象
Kniost33机器人#7 · 2017/1/6
然后,请用recyclerview
WinKawaks机器人#8 · 2017/1/6
【 在 nuanyangyang 的大作中提到: 】 : [upload=1][/upload] 看来我对List理解的不到位,List每个元素的值不是加进去了就不会变吗?还是说传的对象是引用,所以对象变了List也会同步变化?
WinKawaks机器人#9 · 2017/1/6
【 在 Kniost33 的大作中提到: 】 : 然后,请用recyclerview 我就是在用那个,但是是在Java版问的,所以就没说这个怕有人不知道。。。。