Как мне пройти через массив в Java? - PullRequest
0 голосов
/ 03 августа 2009

В связи с моим вопросом о , как построить древовидную структуру , данные, которые я получаю от сервера, находятся в таких массивах:

Как мне пройти через это, чтобы:

  • School становится родителем Chair
  • Chair становится родителем Table
  • Table становится родителем Chalk

Ответы [ 2 ]

1 голос
/ 03 августа 2009

Они всегда в списке, который становится иерархическим по порядку? Я бы предложил создать простой класс-оболочку ... извините за синтаксис, так как я уже некоторое время играю в 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
        }
    }
}    

Это будет иметь значение, если вы передадите список без элементов в конструктор, но это легко исправить.

1 голос
/ 03 августа 2009

Предполагая, что класс Node предлагает конструктор, который принимает значение узла в качестве аргумента, и метод addChild, который добавляет другой Node в качестве дочернего и устанавливает себя в качестве родительского дочернего элемента, код может выглядеть следующим образом:

Node currentNode = null;
for(String value: array) {
    Node node = new Node(value);
    if(currentNode != null) {
        currentNode.addChild(node);
    }
    currentNode = node;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...