解决list.add() 方法会覆盖前面的已经添加好的参数
2016-11-23 10:30
507 查看
Map<String,Object> map = new HashMap<String, Object>(); //mark1
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for(int i=0;i<" ".length;i++){
// map=new HashMap<String, Object>(); //mark2
map.clear();
map.put("title", i+d);
map.put("content", i+e);
list.add(map);
}
----------------------------
情况:不加mark2会出现list.add方法覆盖list前面的参数,并且重复。
解决:注意上面的mark ,mark1是for循环外层已经创建了,list本身存储的是对象也就是地址,如果不加mark2,list中会重复添加同一个对象,加上mark2后是循环每次创建新的对象,所以不会重复。
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for(int i=0;i<" ".length;i++){
// map=new HashMap<String, Object>(); //mark2
map.clear();
map.put("title", i+d);
map.put("content", i+e);
list.add(map);
}
----------------------------
情况:不加mark2会出现list.add方法覆盖list前面的参数,并且重复。
解决:注意上面的mark ,mark1是for循环外层已经创建了,list本身存储的是对象也就是地址,如果不加mark2,list中会重复添加同一个对象,加上mark2后是循环每次创建新的对象,所以不会重复。
相关文章推荐
- 解决List的add方法错使前面的元素被覆盖成相同值
- JSONObject的put方法覆盖已经添加过的数据,造成数据污染解决办法
- List使用add方法添加数据时的覆盖问题
- List使用add方法添加数据时的覆盖问题
- List的add()覆盖了前面的所有元素问题解决
- List集合add方法覆盖原来的内容解决办法
- C# List<T> Add方法循环添加时只保存了最后一次的数据(覆盖问题)
- VS2005中控件不能添加变量(add variable)解决方法总结
- c#(winform)中自定义ListItem类方便ComboBox和ListBox添加项完全解决(DropDownList 和Combox 数据绑定的常用方法)
- 解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts) .
- VMware Linux 共享文件夹 虚拟机无共享文件解决方法(vm已经添加共享文件夹却看不到文件夹)
- 解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts)
- c#(winform)中自定义ListItem类方便ComboBox和ListBox添加项完全解决(DropDownList 和Combox 数据绑定的常用方法) .
- 编程技巧之:双击VC对话框提示cannot add new member以及类向导中没有已经建立的类的解决方法
- ArrayList.add()添加一个元素后,会把前面一个元素覆盖
- Java中集合list的add方法添加的不是值COPY而是地址
- C# List<> add函数总是覆盖List中原有元素的解决办法
- mysql_list_tables方法已经过时的解决途径
- 在sps中遇到“不能添加用户,用户名已经存在”的问题的解决方法
- MenuItem中添加item的menu.add();方法中的四个参数解析。