与我关于how to build a tree-like structure的问题相关,我从服务器收到的数据是这样的数组:{School Chair Table Chalk}
我如何循环使用:
School
成为Chair
Chair
成为Table
Table
成为Chalk
答案 0 :(得分:1)
假设一个Node类提供一个构造函数,该构造函数接受节点的值作为参数,并且方法addChild将另一个Node添加为子节点并将其自身设置为子节点的父节点,则代码可能如下所示:
Node currentNode = null;
for(String value: array) {
Node node = new Node(value);
if(currentNode != null) {
currentNode.addChild(node);
}
currentNode = node;
}
答案 1 :(得分:1)
它们是否总是在按顺序变为分层的列表中?我建议创建一个简单的包装类...原谅我的语法,因为我已经在C#中玩了一段时间了:
public class Node {
public string description;
public Node child;
public Node(List<string> descriptions) {
this.description = descriptions.RemoveAt(0);
if (descriptions.Count > 0) {
this.child = new Node(descriptions); //create child node with remaining items
}
}
}
如果您将带有零项的列表传递给构造函数,这将会出现问题,但这很容易解决。