【发布时间】:2016-03-18 18:06:55
【问题描述】:
我正在尝试从平面数据创建层次结构。我有以下Node 定义:
public class Node {
public String name;
public List<Node> children = new ArrayList<>();
}
给定这个数据:[Person,Manager,Hourly,New],树应该是这样的:
Person
|--Manager
|--Hourly
|--New
我尝试了以下方法:
public void run()
{
List<List<String>> objects = new ArrayList<>();
String[] str = {"Person","Manager","Hourly","New"};
objects.add(Arrays.asList(str)) ;
String[] str2 = {"Person","Manager","Salary"};
objects.add(Arrays.asList(str2)) ;
String[] str3 = {"Person","Manager","Salary", "New"};
objects.add(Arrays.asList(str3)) ;
// Create a Node with the sequence
myNode = new Node();
createNode(objects.get(0), 0, myNode, myNode);
LOG.debug(myNode.name);
}
而我的createNode 方法是:
public Node createNode(List<String> seq, Integer start, Node parentNode, Node childNode)
{
// do something and return a Node?
}
但从概念上讲,如果 Java 是按值返回的,我不明白如何维护结构。我要添加什么到 createNode 以便我可以添加一个 Manager->Hourly->New 层次结构作为子级到 Person
【问题讨论】:
-
Java 是按值返回是什么意思?