我有2個數組列表。在Android中從ArrayList中刪除對象
List<MyObject> firstList (Size=5)
List<MyObject> secondList = firstList;
當我使用這個命令
secondList.remove(0);
目的在firstList 0位置也越來越刪除。 我在這裏做錯了什麼?
我有2個數組列表。在Android中從ArrayList中刪除對象
List<MyObject> firstList (Size=5)
List<MyObject> secondList = firstList;
當我使用這個命令
secondList.remove(0);
目的在firstList 0位置也越來越刪除。 我在這裏做錯了什麼?
只需更改第二行即可解決問題。
List<MyObject> firstList (Size=5)
List<MyObject> secondList = new ArrayList<>(firstList);
secondList.remove(0);
該問題是由於您的行列表secondList = firstList;
它不會創建另一個對象,而不是將列表指向單個對象。
賓果。就是這樣。 – Anirudh
的問題是你的線List<MyObject> secondList = firstList;
這並不創造另一個列表,它只是指的是您創建的第一個列表。你需要實例化一個單獨的列表。
其正確的,因爲secondList
有firstList
參考,所以如果你刪除元素形式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`
顯示完整代碼,請。 – Amy