2016-10-19 3 views
-1

ich diese Klassen haben:alle Instanzen gegebenen Objekt entfernen von Arraylist des Objekts

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>; 
} 

Ist es möglich, dass, wenn ich ein Objekt von class1 entfernen Sie die angegebene Methode verwenden, löscht automatisch die Instanz von jedem Arraylist dass Derivate von Klasse 1? (Ohne durch jede Liste zu gehen, Kontrolle ist equals und „entfernen“)

+1

'Privatarraylist ;' dies in class2 –

+0

syntaktisch falsch ist, wenn Sie ein bestimmtes Objekt aus mehreren Listen entfernen möchten, müssen Sie es aus jeder Liste eins nach dem anderen zu entfernen. –

Antwort

0

Lassen Sie uns sagen Sie dies tun:

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); 
} 

durch diese nur Array-Liste von class1 Objekt tun entfernt wird .. und sonst nichts . Klasse2-Objekt der Klasse1 wird immer noch vorhanden sein, und keine anderen Listen werden gelöscht.

0

Wenn diese beiden Listen nicht dieselbe Instanz sind, wirkt sich das Entfernen eines Elements aus einer Liste nicht auf die Entfernung aus einer anderen Liste aus. Sie müssen durch jeden gehen und das Element von jedem entfernen.

0
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. 
Verwandte Themen