Древовидная структура Java с несколькими дочерними элементами (отсортирована) в каждый уровень

Я работаю с плоским списком объектов, которые, тем не менее, связаны друг с другом в родительско-дочерних отношениях. У объекта может быть любое количество дочерних элементов или вообще не быть. Мне нужно отобразить эти объекты в виде дерева, показывая эти отношения. Каждый уровень дерева должен быть отсортирован (объекты совместимы с Collections.sort () ).

Вопрос состоит из двух частей:

  1. Имеется ли в Java хорошая готовая структура данных для хранения такого дерева или мне нужно написать ее с нуля? (небольшая задача, но изобретать колесо бессмысленно) Я знаю о DefaultTreeModel в Swing ... но это приложение работает на стороне сервера, и использование пакета Swing будет осуждено при проверке кода.

  2. Какой шаблон лучше всего подходит для загрузки плоского списка в такую ​​структуру данных? Моя первая мысль - идентифицировать объекты корневого уровня, а затем использовать рекурсивный метод для перехода вниз через их детей, внуков и т. Д. Однако для требования сортировки сверстников на каждом уровне в дереве ... я не уверен, имеет ли смысл беспокоиться об этом, когда я строю дерево, или беспокоиться об этом позже, когда я разбираю дерево для отображения.

9
задан Steve Perkins 20 January 2011 в 15:02
поделиться