Es ist ein bisschen schwierig zu erklären. In diesem Beispielcode:Wie kann ich die Liste aller Elemente (Hierarchie) innerhalb des Elements basierend auf Eltern-Kind-Beziehung erhalten?
public class SomeClass
{
private String id;
private String parent;
public SomeClass(String id, String parent)
{
this.id = id;
this.parent = parent;
}
public String getParent()
{
return parent;
}
}
List<SomeClass> someList = new ArrayList();
someList.add(new SomeClass("Test1", "none"));
someList.add(new SomeClass("Test2", "none"));
someList.add(new SomeClass("Test1Mem1", "Test1"));
someList.add(new SomeClass("Test2Mem1", "Test2"));
someList.add(new SomeClass("Test1Mem1Obj1", "Test1Mem1"));
Ich möchte eine Funktion erstellen, die alle Objekte holen, die ein Objekt wird, das in es mit dem „Eltern“ Feld-Hierarchie ist. Wenn ich zum Beispiel nach "Test1Mem1Obj1" suche, sollte es mir die Werte von "{Test1Mem1, Test1}" geben und wenn ich nach "Test2Mem1" suche, sollte es mir die Werte von "{Test2}" geben. Ruft im Prinzip das Elternelement des Elternelements ab und so weiter. Es tut mir leid für diese Erklärung wegen der Sprachbarriere. Ich hoffe, dass mir jemand hier helfen kann. Vielen Dank!
Ich habe eine temporäre schmutzige Lösung und Sie können sehen, warum das nicht gut ist.
if(someObj.getParent() != null)
{
result.add(someObj.getParent());
if(someObj.getParent().getParent() != null)
{
result.add(someObj.getParent().getParent());
if(someObj.getParent().getParent().getParent() != null)
{
result.add(someObj.getParent().getParent().getParent());
}
}
}
Ist es eine Voraussetzung, dass eine Liste verwendet wird? Ich denke eine Baumstruktur könnte hier besser dienen. –
Auch ich sollte erwähnen, dass ich die Liste aus der MySQL-Datenbank lade. Es hat also keine Reihenfolge, und mit der Einschränkung der Implementierung kann ich die Baumstruktur nicht verwenden. – TheAwesomeGem
Sind die IDs eindeutig? Können Sie stattdessen eine Karte verwenden? – Crummy