在 Android 中从 ArrayList 中删除对象

Removing objects from ArrayList in Android

我有 2 个数组列表。

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

当我使用这个命令时

secondList.remove(0);

firstList 中 0 位置的对象也被删除。 我在这里做错了什么?

问题是你的线路List<MyObject> secondList = firstList;

这不会创建另一个列表,它只是引用您创建的第一个列表。您需要实例化一个单独的列表。

只需更改第二行即可解决您的问题。

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


secondList.remove(0);

问题是由于您的行 List 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`