ArrayList 添加HashMap问题。 本帖最后由 k745933923 于 2011-05-11 17:58:45 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for循环第一句加上map.clear(),put方法貌似不能直接修改map的属性值 还是不行。HashMap<String, String> map1 = new HashMap<String, String>(); for (int i = 0; i < 2; i++) { map1.clear(); map1.put("paper_name", MyContentHandler.hisname[i]); map1.put("paper_id", MyContentHandler.id[i]); list.add(map1); System.out.println(i); System.out.println(map1); System.out.println("List"+i+":"+list.get(i)); } System.out.println("为啥就这样了呢"+list.get(0)); System.out.println("为啥就这样了呢"+list.get(1));加粗的那边是真确的,两次输出是不一样的,但是循环外面就搞笑了。 map的值放错了,他永远保存的是循环第二次时候的值,第一次的值让第二次循环覆盖了 但是覆盖前已经加到list里面了啊..我觉得应该不是这个问题 我debug了一下,发现map值变化的时候list里面存放的原来的map也跟着改变了,估计是因为add的是引用,所以map变list也跟着变,解决方法,每次循环new一个map。 哦.对, list怎么放都是放的那一个对象.. 第二次改了map值改了后,list里面的那两个map对象其实都是同一个引用对吧(不晓得我表述得对不对?)? 我觉得楼主可以试试吧HashMap<String, String> map = new HashMap<String, String>();放到循环里面 特殊网页的用户登录界面无法输入用户登录信息 sdcard无法读写文件 求一个安卓的中文api帮助文档。。英文不好是硬伤啊。。。 仿qq登录界面怎么做? android --开发问题---看图(不好描述,图片比较直接) 求助!NDK错误 android源码右上角的menu键怎么去掉 android 自定义RatingBar(评分控件)在不同分辨率图片不完整或有下拉阴影 android PTP 如何同时支持内外置存储? AS之AVD闪退 请问多网络可用的情况下,能控制用哪个吗? android手机无法调用pc机上的webservice
HashMap<String, String> map1 = new HashMap<String, String>();
for (int i = 0; i < 2; i++)
{
map1.clear();
map1.put("paper_name", MyContentHandler.hisname[i]);
map1.put("paper_id", MyContentHandler.id[i]);
list.add(map1);
System.out.println(i);
System.out.println(map1);
System.out.println("List"+i+":"+list.get(i)); }
System.out.println("为啥就这样了呢"+list.get(0));
System.out.println("为啥就这样了呢"+list.get(1));
加粗的那边是真确的,两次输出是不一样的,但是循环外面就搞笑了。
但是覆盖前已经加到list里面了啊..我觉得应该不是这个问题
哦.对, list怎么放都是放的那一个对象.. 第二次改了map值改了后,list里面的那两个map对象其实都是同一个引用对吧(不晓得我表述得对不对?)? 我觉得楼主可以试试吧HashMap<String, String> map = new HashMap<String, String>();放到循环里面