Как реализовать древовидную структуру данных в Java?
Существует ли какой-либо стандартный класс библиотеки Java для представления дерева в Java?
В частности, мне нужно представить следующее:
Поддерево в любом узле может иметь произвольное количество дочерних элементов
Каждый узел (после корневого) и его дочерние элементы будут иметь строковое значение
Мне нужно получить все дочерние элементы (своего рода список или массив строк) данного узла и его строковое значение (т. Е. Метод, который будет принимать узел в качестве входных данных и возвращать все строковые значения дочернего узла в качестве выходных данных)
Есть ли какая-либо доступная структура для этого или мне нужно создать свою собственную (если да, то предложения по реализации были бы замечательными).
Это базовая древовидная структура, которую можно использовать для String или любого другого объекта. Довольно легко реализовать простые деревья, чтобы делать то, что вам нужно.
Все, что вам нужно добавить, это методы для добавления в, удаления из, обхода и конструкторы. Node Это базовый строительный блок Tree.
На самом деле в JDK реализована довольно хорошая древовидная структура.
Взгляните на javax.swing.tree, TreeModel и TreeNode. Они предназначены для использования с JTreePanel но на самом деле это довольно хорошая древовидная реализация, и ничто не мешает вам использовать ее без интерфейса swing.
Обратите внимание, что начиная с Java 9, вы можете не использовать эти классы, поскольку они не будут присутствовать в "Компактных профилях".