国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java ArrayList add()方法數(shù)據(jù)被覆蓋問題

2019-11-06 08:02:10
字體:
供稿:網(wǎng)友

今天學習jdbc時,將從數(shù)據(jù)庫取出來的數(shù)據(jù)存入ArrayList集合中時出現(xiàn)了一點小問題

		        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());			}
在輸出時發(fā)現(xiàn)輸出的數(shù)據(jù)都是最后一條,前面的數(shù)據(jù)完全被覆蓋,解決這個問題很簡單就是把User user = new User();這一句代碼放進while循環(huán)內(nèi).為什么會出現(xiàn)這樣的情況呢?原因在于ArrayList的add()方法添加的是對象的引用,如果上述一行代碼在while循環(huán)外面,那么創(chuàng)建的對象引用始終只有一個,而while循環(huán)內(nèi)一直在改變對象的各個變量,直至while循環(huán)結束,而添加進入users的引用始終是不變。而如果將上述一句代碼放入while循環(huán)內(nèi),則相當于每次循環(huán)都創(chuàng)建了一個對象引用,并且指向當次循環(huán)的對象,users各對象引用指向的對象變量值都是不同的.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邢台市| 阿拉善左旗| 大渡口区| 定结县| 阳高县| 宜昌市| 荆门市| 樟树市| 错那县| 蓝田县| 东海县| 松阳县| 新泰市| 石门县| 疏附县| 正定县| 溧阳市| 陵川县| 尼玛县| 罗山县| 临夏市| 福清市| 拉萨市| 阜阳市| 米易县| 屏东县| 巴林右旗| 噶尔县| 余江县| 桂东县| 南京市| 丰县| 张家港市| 江孜县| 星子县| 岳西县| 定日县| 平昌县| 璧山县| 远安县| 铁岭市|