Проблема:
Допустим, есть XML-файл, который содержит как данные, так и иерархию определенных элементов, представляющих интерес для приложения:
<root>
<node title="lvl1Node">
<node title="lvl2Node">
<node title="lvl3Node"></node>
</node>
</node>
<node title="lvl1Node2"></node>
<node title="lvl1Node3">
<node title="lvl2Node2">
<node title="lvl3Node2">
<node title="lvl4Node"></node>
</node>
</node>
</node>
</root>
Теперь предположим, что вашему приложению необходим API для извлечения этих узлов. Вам нужно написать метод, который возвращает узлы без потери информации об их иерархии.
Мой вопрос: как бы вы поступили? Какой тип данных вы бы использовали.
Древовидный тип данных является очевидным ответом, но он не предусмотрен в стандартном API Коллекций, и написание его самостоятельно всегда является последним средством (программисты ленивы, изобретают велосипед и т. Д.).
Я также подумал о ArrayList, где каждый элемент является либо Object (для узла без подузлов), либо Arraylist (для узла с подузлами), но мне нравятся обобщения, и это слишком похоже на хак.
Есть ли более умный способ сделать это?