Реализовать Родителя / Дочернего и получить Набор записей Если я назову имя родителя

У меня есть данные, как показано ниже. Здесь, если команда 1 является родителем и имеет 2 дочерних, команда A и команда B. команда A снова является родителем и имеет имена игроков в качестве дочерних. У команды Б нет ни одного ребенка.

Снова в другом сценарии, команда A является независимым родителем и содержит некоторого ребенка и т.

Если я отдаю Команду 1, то она должна получить записи о Команде А и Команде Б в виде связки. Если я даю Команду А, то она должна получить записи о Команде А, содержащие ее ребенка.

Я думал реализовать это с помощью карты или дерева. и я попробовал это -

public class Node {

    private String id;
    private List<Node> children = new ArrayList<>();
    private Node parent;
    ..........
    //setters and getters
}

но здесь создание узла динамически является проблемой, потому что мы не знаем уровни родителей (в этом примере их 2). означает, что "Дони" снова содержит некоторых детей, как мудрый.

Как это реализовать?, Пожалуйста, руководство.

1 ответ

Решение

Все, что я понял из описания проблемы, я постараюсь обобщить здесь. Вы ищете структуру данных, которая может принимать имя (ключ) родителя и может иметь детей, и каждый дочерний элемент также может быть расширен.

открытый класс Node {

private String id; // for each level you have key defined.
private List<Node> children = new ArrayList<>(); //using given key you can  get children list  

}

Вы можете использовать карту здесь

 Map<String, List<Node>> // here key is team name etc., and list represents children.

Если вы дадите команду 1 в качестве ключа, вы получите список, который содержит teamA, teamB. Поэтому, если вы хотите проверить дальше, проверьте размер списка, если он больше нуля, вы можете получить детей (далее вы можете получить всех игроков, определенных для команды A,teamB), иначе вы, наконец, ребенок.

Другие вопросы по тегам