1. 程式人生 > >ArrayList add()方法後前面的資料被覆蓋的問題

ArrayList add()方法後前面的資料被覆蓋的問題

ArrayList<T> myList = new ArraList<T>();  
for(.....)  
{  
    T st = new T();  
    for(.....)  
        {  
            st = Math.random();;  
            myList.add(st);  
        }  
}  

如上的程式:新加入的st會覆蓋上一個st,不希望這樣的話,必須把例項化st的過程(T st = new T();這句)放進第二個for迴圈中.
原因:
其實add加進去的是物件的一個引用,物件例項化放在迴圈外面,你每次都更新了這個引用的值,當然list裡面的值都一樣的。如果把T st = new T();放到迴圈裡面,每次都生成一個新的物件,更改自身不會對其他元素有影響....