Hallo Christoph,
Ich habe eine Tabelle die so aussieht:
ID Parent ID Name
1 0 Lollo
2 1 Heinz
3 1 Klaus
4 1 Thomas
5 3 Anja
Was Du brauchst, ist also eine Methode, die einem Knoten alle
Kinderknoten anhängt und sie rekursiv selbst aufruft.
Ein Knoten wäre so etwas:
class Node {
//Konstruktor
Node(Integer id, String name, List<Node> childs);
//Eigenschaften des Objekts
Integer id;
String name;
List<Node> childs;
}
Die Tabelle hat eine Methode, um alle Kinder eines Knotens zu bekommen (ich nenne sie hier mal getRows(Integer id)) sowie folgende Methoden um den Baum zu erzeugen:
List<Node> getTree(Integer id) {
List<Node> childs = new List<Node>();
foreach(Row row: getRows(id)) {
childs.add(new Node(row.id, row.name, getTree(row.id)));
}
return childs;
}
Node getTree() {
return new Node(0, "ROOT", getChilds(0));
}
Das ist kein lauffähiges Java, aber wie man rekursiv einen Baum aus einer flachen Struktur erzeugt, dürfte ganz gut erkennbar sein.
Grüße
Daniel