码迷,mamicode.com
首页 > 移动开发 > 详细

Android中list.add问题

时间:2014-10-18 23:38:01      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   ar   java   for   sp   2014   问题   

============问题描述============


下面的代码一直运行好好的,却突然出问题了。listAll.add本应该加进去每个map2,但是输出却变成加入了相同的map2。之前一直运行好好的,这是怎么回事啊?


listAll.clear();

					for (int i = 0; i < str.length / 8; i++) {

						System.out.println("i = " + i);

						map2.put("user_name", list.get(i * 8));

						map2.put("flag", list.get(i * 8 + 1));

						map2.put("object_words", list.get(i * 8 + 2));

						map2.put("my_words", list.get(i * 8 + 3));

						map2.put("date", list.get(i * 8 + 5));



						// 如果用户没有传照片,map2中传的imageUrl就为空

						if (!list.get(i * 8 + 4).equals(" ")) {

							String imageUrl1 = "http://10.0.2.2:8080/BBStuServlet/"

									+ list.get(i * 8 + 4);

							String imageUrl = imageUrl1.replace(" ", "");

							map2.put("imageUrl", imageUrl);

						} else {

							map2.put("imageUrl", "");

						}

						System.out.println("map2 = " + map2);

						listAll.add(map2);

						System.out.println("listAll = " + listAll);



下面这张图片是输出,listAll里面的值全是一样的,之前还运行正常,请前辈指教,感激不尽。bubuko.com,布布扣
bubuko.com,布布扣

============解决方案1============


你把map2的实例化放在for循环里面(也就是每次循环都new一个map2),应该没问题了

============解决方案2============


变量map2的值没有改变,所以你每次add的都是同一个对象,每次通过put修改的也是同一个对象。
应该在每个循环中new一个新对象

for (int i = 0; i < str.length / 8; i++) {

	map2 = new HashMap<String, String>();

	...

}

Android中list.add问题

标签:android   blog   http   ar   java   for   sp   2014   问题   

原文地址:http://www.cnblogs.com/qibileiru/p/4033807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!