java ArrayList add()方法数据被覆盖问题
来源:互联网 发布:calendar什么软件 编辑:程序博客网 时间:2024/05/16 19:11
今天学习jdbc时,将从数据库取出来的数据存入ArrayList集合中时出现了一点小问题
List<User> users=new ArrayList();
User user=new User();
while(rs.next()){user.setNo(rs.getInt("no"));user.setName(rs.getString("name"));user.setAge(rs.getInt("age"));users.add(user);System.out.println(user.getAge());}for (User u : users) {System.out.println(u.getAge());}
在输出时发现输出的数据都是最后一条,前面的数据完全被覆盖,解决这个问题很简单就是把User user = new User();这一句代码放进while循环内.为什么会出现这样的情况呢?原因在于ArrayList的add()方法添加的是对象的引用,如果上述一行代码在while循环外面,那么创建的对象引用始终只有一个,而while循环内一直在改变对象的各个变量,直至while循环结束,而添加进入users的引用始终是不变。而如果将上述一句代码放入while循环内,则相当于每次循环都创建了一个对象引用,并且指向当次循环的对象,users各对象引用指向的对象变量值都是不同的.1 0
- java ArrayList add()方法数据被覆盖问题
- ArrayList.add后,前面数据被覆盖的问题
- ArrayList.add(Object) 前面数据被覆盖的问题
- ArrayList.add后,前面数据被覆盖的问题
- ArrayList中add后数据被覆盖的探索
- Java静态方法不能被覆盖
- Java 方法被覆盖时异常特点
- Java实例方法被覆盖,静态方法被隐藏
- list里面数据被覆盖
- 在arraylist添加对象后被覆盖
- 方法可以被覆盖,但是属性不会被覆盖
- 解决List的add方法错使前面的元素被覆盖成相同值
- javascript之调用被覆盖的方法
- 12.5.2 访问被覆盖的方法
- WPF顶层窗口被覆盖问题
- 解决grub被覆盖的问题
- js 二维数组值被覆盖问题
- Maven assembly打包文件被覆盖问题
- flume+kafka+storm+hdfs
- SQL学习之:数值型函数
- Hibernate配置,CRUD操作,Junit单元测试
- 引用与指针的区别
- 项目中session的管理方式
- java ArrayList add()方法数据被覆盖问题
- Hadoop介绍
- 初学JSP与Servlet之登录界面3.0版本
- C++读书笔记之类的继承1(第十三章)
- 压缩感知常用基础数学概念
- jsp页面checkbox全选或全部取消的代码
- 花生壳映射失败
- Mybatis常见面试题(转)
- RStudio 的使用