У меня есть сущность с именем Item
. Item
могут иметь родителей и детей.
Каждый Item
имеет следующие методы:
getParent()
-> возвращает Item
getChildren()
-> возвращает List<Item>
isLeaf()
-> возвращает Boolean
getName()
-> возвращает String
Каждый уровень в иерархии - это уровень на строительной площадке, например, уровень 1 - это Дом 1, уровень 2 - Этаж 1, уровень 3 - Комната, а уровень 4 - Окно.
У меня есть List<Item
, и мне нужно отсортировать их так:
- Элемент 1 (Дом 1> Этаж 1> Комната 1> Ванна)
- Пункт 2 (Дом 1> Этаж 1> Комната 2> Подвал)
- Позиция 3 (Дом 1> Этаж 1> Комната 2> Дверь)
- Пункт 4 (Дом 1> Этаж 1> Комната 2> Окно)
- Пункт 5 (Дом 1> Этаж 2> Комната 1> Дверь)
Я думаю, что мне нужна какая-то рекурсивная функция, но я не представляю, как это должно быть.
Я уже исследовал сортировку объектов с иерархией в Java, но я не нахожу ничего похожего на мой случай.
Буду признателен за любую помощь и извините, если вопрос не ясен на 100%, но его довольно сложно описать.
Спасибо.