1. 程式人生 > >ArrayList.add()新增一個元素後,會把前面一個元素覆蓋

ArrayList.add()新增一個元素後,會把前面一個元素覆蓋

今天寫程式時,每次取值均正確,但是不管怎麼輸出,都是輸出最後一次 add 的值,百思不得其解,後來才發現,java的list的 add方法引用的是地址,如果是全域性的話,每次引用的值都一樣,取的值也就一樣了。每次add都用new一個新實體就可以解決問題了,接近兩小時的青春浪費了,就因為一行程式碼位置錯誤,對 list 不熟悉。

大概如下:

FlightInfoVo fInfoVo = new FlightInfoVo();
for()
{
fInfoVo.set ;
.............................
}
list.add(fInfoVo);

解決辦法: new 
fInfoVo只有一個。
應該在迴圈內部,new一個新的fInfoVo,而不是 for 外部
歡迎個人轉載,但須在文章頁面明顯位置給出原文連線;
未經作者同意必須保留此段宣告、不得隨意修改原文、不得用於商業用途,否則保留追究法律責任的權利。

【 CSDN 】:csdn.zxiaofan.com
【GitHub】:github.zxiaofan.com

如有任何問題,歡迎留言。祝君好運!
Life is all about choices! 
將來的你一定會感激現在拼命的自己!