ArrayList add()方法覆盖数据解决办法
程序员文章站
2022-06-04 10:37:35
...
在循环中使用list.add(vo)可能最后只有一个vo,之前的都被覆盖了,原因是vo的对象创建了在循环外面,只有一个对象,所以每次都会被覆盖
List<Retdata> li = new ArrayList<Retdata>();
Retdata data=new Retdata();
for (int i = 0; i < retList.size(); i++) {
data.setMobile((String) jo11.get("mobile"));
data.setSendcontent((String) jo11.get("sendcontent"));
data.setSendDate((String) jo11.get("SendDate"));
li.add(data);
}
0
{SendDate=2017/6/7, sendcontent=111, mobile=123456789}
1
{SendDate=2017/6/8, sendcontent=22, mobile=22222222}
2
{SendDate=2017/6/7, sendcontent=33, mobile=3333333333}
0
[email protected]
1
[email protected]
2
[email protected]
可以看到上面list中的对象都是同一个内存地址。
解决方法:将对象在循环中创建
List<Retdata> li = new ArrayList<Retdata>();
for (int i = 0; i < retList.size(); i++) {
Retdata data=new Retdata();
data.setMobile((String) jo11.get("mobile"));
data.setSendcontent((String) jo11.get("sendcontent"));
data.setSendDate((String) jo11.get("SendDate"));
li.add(data);
}
推荐阅读
-
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
-
django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
-
【转载】C#中ArrayList集合类使用Add方法添加元素
-
【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据
-
【转载】 C#中ArrayList使用GetRange方法获取某一段集合数据
-
使用 ArrayList.add() 方法,添加的数据为什么会被覆盖?
-
Yii2 联表查询数据丢失,即出现主键覆盖情况的解决方法
-
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
-
django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
-
【转载】C#中ArrayList集合类使用Add方法添加元素