List使用add方法添加对象-只显示最后添加的数据的问题

来源:互联网 发布:产品优化方案 编辑:程序博客网 时间:2024/05/21 02:33
List<String[]> list = new LinkedList<String[]>();
String[] strs = new String[2];
for(int i = 0; i < 100; i++){
strs[0] = "1";
strs[1] = "2";
list.add(strs);
}
这样,list中的所有数据将会是最后录入的一条数据,因为加入的是它的引用的地址


List<String[]> list = new LinkedList<String[]>();
for(int i = 0; i < 100; i++){
String[] strs = new String[2];
strs[0] = "1";
strs[1] = "2";
list.add(strs);
}

只有每次都新建一个新的数组,才能够保存想要的数据


其实错误在于,list是引用类型,add方法加入的是引用地址,如果orderInfo的初始化放在for循环外面,


那么orderInfo的实例对象只有一个,list中添加的每一个orderInfo里面的内容都是相同的,都为每一次for循环获取的值。


所以orderInfo对象要在for循环内部定义,用的时候定义,每一次创建新的对象!



阅读全文
0 0
原创粉丝点击