Я пытаюсь создать иерархию из плоских данных. У меня есть следующий 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-> Новую иерархии в детстве Person
Что вы подразумеваете, говоря, что Java является возвратом по значению? –