在 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`
我有 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`