Hallo,
ich habe eine Klasse Person die die als Member eine Collection mit weiteren Personen hat.
Mit dieser Klasse kann ich einen Baum abbilden.
Ich habe nun eine Add-Methode um einer Person neue Personen hinzu zufügen. Dort implementiere ich kein Zykluscheck.
Wenn ich nun über eine Person und deren (Kinder) also Personen rekursiv iteriere und ein Zyklus drin ist, entsteht eine Endlosrekursion.
Wie kann ich beim iterieren einen Zyklus erkennen und das bereits besuche Objekt meiden? Meine Lösung funktioniert z.Z. mit einer HashMap d.h. ich speicher die Objekt-ID als Key und prüfe zu Beginn der rekursiven Methode ob das Objekt schon in der HashMap liegt.
Gibt es bessere Lösungen?
Viele Grüße
ich habe eine Klasse Person die die als Member eine Collection mit weiteren Personen hat.
Mit dieser Klasse kann ich einen Baum abbilden.
Ich habe nun eine Add-Methode um einer Person neue Personen hinzu zufügen. Dort implementiere ich kein Zykluscheck.
Wenn ich nun über eine Person und deren (Kinder) also Personen rekursiv iteriere und ein Zyklus drin ist, entsteht eine Endlosrekursion.
Wie kann ich beim iterieren einen Zyklus erkennen und das bereits besuche Objekt meiden? Meine Lösung funktioniert z.Z. mit einer HashMap d.h. ich speicher die Objekt-ID als Key und prüfe zu Beginn der rekursiven Methode ob das Objekt schon in der HashMap liegt.
Gibt es bessere Lösungen?
Viele Grüße