Я работаю с плоским списком объектов, которые, тем не менее, связаны друг с другом в родительско-дочерних отношениях. У объекта может быть любое количество дочерних элементов или вообще не быть. Мне нужно отобразить эти объекты в виде дерева, показывая эти отношения. Каждый уровень дерева должен быть отсортирован (объекты совместимы с Collections.sort ()
).
Вопрос состоит из двух частей:
Имеется ли в Java хорошая готовая структура данных для хранения такого дерева или мне нужно написать ее с нуля? (небольшая задача, но изобретать колесо бессмысленно) Я знаю о DefaultTreeModel
в Swing ... но это приложение работает на стороне сервера, и использование пакета Swing будет осуждено при проверке кода.
Какой шаблон лучше всего подходит для загрузки плоского списка в такую структуру данных? Моя первая мысль - идентифицировать объекты корневого уровня, а затем использовать рекурсивный метод для перехода вниз через их детей, внуков и т. Д. Однако для требования сортировки сверстников на каждом уровне в дереве ... я не уверен, имеет ли смысл беспокоиться об этом, когда я строю дерево, или беспокоиться об этом позже, когда я разбираю дерево для отображения.