Ответ
В Java деревья можно реализовать несколькими способами:
- Стандартная иерархия классов (наиболее гибкий вариант):
class TreeNode<T> {
T data;
List<TreeNode<T>> children = new ArrayList<>();
TreeNode(T data) {
this.data = data;
}
void addChild(TreeNode<T> child) {
children.add(child);
}
}
- Бинарное дерево:
class BinaryNode<T> {
T data;
BinaryNode<T> left, right;
BinaryNode(T data) {
this.data = data;
}
}
- Использование стандартных коллекций (для простых случаев):
Map<String, List<String>> tree = new HashMap<>();
tree.put("root", Arrays.asList("child1", "child2"));
- Готовые библиотеки: Apache Commons Collections, Guava, JGraphT.
Для Android чаще используют первые два варианта, так как они дают больше контроля над структурой данных.