有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android中从ArrayList中删除对象

我有两个数组列表

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

当我使用这个命令时

secondList.remove(0);

firstList中位于0位置的对象也将被删除。 我做错了什么


共 (3) 个答案

  1. # 1 楼答案

    问题是你的台词List<MyObject> secondList = firstList;

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

  2. # 2 楼答案

    它是正确的,因为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`
    
  3. # 3 楼答案

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

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

    问题是由于您的线路列表secondList=firstList

    它不会创建另一个对象,而是同时指向单个对象的列表