Удалить все экземпляры данного объекта из списка массивов этого объекта

#java

#java

Вопрос:

У меня есть эти классы:

 public class class0{
    private ArrayList<class1> array;
    ...
    public void remove(Class1 class1){
        array.remove(class1);
    }
}

public class class1{    
    private Class2 array;
}

public class class2{
    private ArrayList<class1>;
}
  

Возможно ли, что, когда я удаляю объект class1 с использованием данного метода, этот экземпляр автоматически удаляется из каждого списка массивов, производного от class1?
(Не просматривая каждый список, проверка равна и «удалить»)

Комментарии:

1. private ArrayList<class1>; это синтаксически неправильно в class2

2. Если вы хотите удалить определенный объект из нескольких списков, вы должны удалить его из каждого списка по одному.

Ответ №1:

Допустим, вы делаете это:

 ArrayList<Class1> array = ArrayList<Class1>();

public void add(Class1 class1){
   array.add(class1);
}

public void remove(Class1 class1){
        array.remove(class1);
    }

public static void main(String argv[]){
   Class1 class1 = new Class1();
   Class1 class2 = new Class1();
   new class0.add(class1);
   new class0.add(class2);
   new class0.remove(class1);
}
  

при выполнении этого удаляется только список массивов объекта class1 .. и ничего больше. объект class2 из class1 все еще будет там, и никакие другие списки не будут удалены

Ответ №2:

Если эти два списка не являются одним и тем же экземпляром, удаление элемента из одного списка не влияет на удаление из другого списка. Вам нужно будет просмотреть каждый из них и удалить элемент из каждого.

Ответ №3:

 ArrayList<'class1> array; // This won't allow anything else but objects of class1

So deleting all objects of class1 is equivalent to clearing the entire array.

If you define: ArrayList array; // without <class1> 
then you can iterate through it and see if entry is of a type by using: 

instanceof 

and then delete it.