Java中循环添加的值一样的问题
2012-08-06 11:30
239 查看
for(HashMap<String, ?> info:list){ HashMap<String, Object> infoq = new HashMap<String, Object>(); System.out.println("info name:"+info.get("name")); for(StudentVirtual virtual:virtuals){ String DataIndex = virtual.getDataIndex(); infoq.put(DataIndex, info.get(DataIndex)); infoq.put(DataIndex+"_header", virtual.getHeader()); infoq.put(DataIndex+"_width", virtual.getWidth()); infoq.put(DataIndex+"_flex", virtual.isFlex()); } System.out.println("list2 add:"+infoq.get("name")); list2.add(infoq); }
如果把
HashMap<String, Object> infoq = new HashMap<String, Object>();放到循环外面,则list2中的内容完全一样
因为在放在for循环之前只是指定了一个内存地址,每次都在一个内存地址上覆盖原来的数据,所以你得到的永远是循环最后一次的值。 放在循环里是每循环一次就NEW一个内存地址,这样把数据放到各自的内存地址里,互不影响。
相关文章推荐
- ArrayList在多线程调用Add()添加元素时的下标越界问题(java.lang.ArrayIndexOutOfBoundsException)
- Java之HashMap在多线程情况下导致死循环的问题
- java 和 c等作用域问题,循环中重复定义变量
- Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms
- java学习中遇到的Scanner死循环问题
- java中foreach循环空值问题
- C# List 添加元素的问题(为什么我的元素都变一样了)
- 关于java中对象的循环引用问题
- 关于Java new对象构造方法执行顺序 解释恶汉单例模式死循环问题
- 解决使用maven的java web项目导入或新建添加pom配置后出现的有关问题 -cannot be read or is not a valid ZIP file
- Java采用循环链表结构求解约瑟夫问题
- 百度地图循环添加标注,并循环为标注添加信息窗口问题解决
- 多个数组间元素排列组合问题求解(Java实现) 标签: 递归排列组合循环
- jfinal的使用for等循环批量添加数据问题
- java中multipart/form-data方式提交表单添加验证问题
- 【java解惑】类和实例的初始化循环问题
- Java中float、double、long类型变量赋值添加f、d、L尾缀问题
- java.awt.List 添加中文 显示乱码问题
- 解决SVN死循环问题 -- JAVA 后台
- java中关于使用break跳出多层循环的问题