Hallo ich hänge aktuelle bei der toString() Methode fest. Ich möchte alle Elemente mit fortlaufender Nummerierung ausgeben lassen, allerdings weiß ich momentan nicht, wie ich die Zahlen erhöhen soll.
Die Ausgabe sollte so aussehen:
Wissenschaft
========
1. praktische
1.1. Ethik
1.2. Rhetorik
usw.
Java:
public class TreeNode<T> {
private final ArrayList<TreeNode<T>> children = new ArrayList<>();
private T data;
public TreeNode(T data) {
this.data = data;
}
public void addChild(TreeNode<T> node) {
children.add(node);
}
public T get() {
return data;
}
public void set(T data) {
this.data = data;
}
@Override
public String toString() {
return toString("", 1);
}
public String toString(String prefix, int number) {
StringBuilder s = new StringBuilder();
//s.append(number);
s.append(prefix);
s.append(data);
s.append("\n");
if (prefix.equals("")){
s.append("=================\n");
prefix = (number) + ".";
}else{
prefix = " " + prefix + (number) + ". ";
}
for (int i = 0; i < children.size(); i++){
s.append(children.get(i).toString(prefix, number));
}
return s.toString();
}
}
public class TreeNode_Main{
public static void main(String[] args) {
TreeNode<String> root = new TreeNode<String>("Wissenschaften");
TreeNode<String> node = new TreeNode<String>("praktische");
node.addChild(new TreeNode<String>("Ethik"));
node.addChild(new TreeNode<String>("Rhetorik"));
node.addChild(new TreeNode<String>("Politik"));
root.addChild(node);
node = new TreeNode<String>("theoretische");
root.addChild(node);
System.out.println(root);
}
}
Die Ausgabe sollte so aussehen:
Wissenschaft
========
1. praktische
1.1. Ethik
1.2. Rhetorik
usw.