2016-03-22 71 views
-3

我有2個數組列表。在Android中從ArrayList中刪除對象

List<MyObject> firstList (Size=5) 
List<MyObject> secondList = firstList; 

當我使用這個命令

secondList.remove(0); 

目的在firstList 0位置也越來越刪除。 我在這裏做錯了什麼?

+0

顯示完整代碼,請。 – Amy

回答

5

只需更改第二行即可解決問題。

List<MyObject> firstList (Size=5) 
List<MyObject> secondList = new ArrayList<>(firstList); 


secondList.remove(0); 

該問題是由於您的行列表secondList = firstList;

它不會創建另一個對象,而不是將列表指向單個對象。

+0

賓果。就是這樣。 – Anirudh

0

的問題是你的線List<MyObject> secondList = firstList;

這並不創造另一個列表,它只是指的是您創建的第一個列表。你需要實例化一個單獨的列表。

0

其正確的,因爲secondListfirstList參考,所以如果你刪除元素形式secondList其從firstList

使用刪除下面的代碼相同:

//create new arraylist which contains item of firstList list 
List<MyObject> secondList = new ArrayList(firstList); 
secondList.remove(0);//now it will only remove element from `secondList`