Ich implementiere einen Binärbaum. Ich habe ein Iterator-Klasse für den Baum, der Iterator implementiert, aber ich muss es den Baum für den Konstruktor geben:JAVA - Erstellen eines Iterators für Baumdatenstruktur, der Iterator implementiert und Kopfknoten bekommt
public class AvlIterator implements Iterable<Integer>{
public Iterator<Integer> iterator(AvlTree avlTree){
//here i construct the iterator class, with the avlTree inside.
}
}
Aber die Schnittstelle nicht jedes Objekt in seinem Konstruktor bekommt. Es sagt mir, diese Signatur hinzuzufügen:
public Iterator<Integer> iterator();
Also, was mit meiner Implementierung falsch ist? Auf der einen Seite brauche ich das Tree-Objekt, um meine Operationen auszuführen, auf der anderen Seite sagt Java mir, dass ich Dinge nicht richtig mache.
Oder besser verwenden Sie eine anonyme Klasse innerhalb der Methode iterator(), die Iterator erweitert und das zurückgibt. Und AvlTree muss Iterable erweitern –
Madhusudhan
Dies ist, wie die meisten Iteratoren in der JVM implementiert werden, so ist es wahrscheinlich der richtige Weg zu gehen. –
@ArnaudDenoyelle - Willst du sagen, dass anonyme Klassen die bevorzugte Methode ist oder sind innere Klassen die bevorzugte Methode? – Madhusudhan