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>();放到循环里面 如何使用WebView登陆需要Windows AD帐号验证的网站 请问如何访问/data/data/com.android.providers.telephony/app_parts/目录下的文件? android模拟器疑问 通过图片path如何得到其详细信息 一个独立的照相Activity,另一个Activity调用没反应,求救!!! 系统自带音乐播放器问题!!!!! 求助如图结构如何实现 闪光灯 Bmob_APP_KEY从哪看 Fragment中ListView不显示 请问多网络可用的情况下,能控制用哪个吗? 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>();放到循环里面