我有一个集合,其中每个节点都是A类或A类集合。
这也是递归的,因为A类集合中的每个节点都可以是A类或A类集合。
我目前正在使用List,然后检查Object以查看它是A类还是A类列表,但这似乎打败了使用泛型的目的。我想我需要一个更像树的结构。思考?
答案 0 :(得分:5)
查看Composite设计模式。
答案 1 :(得分:2)
当您实例化泛型类型时,您仍然会在集合中存储同类型。在现实世界中,这样做的方式是建立一个公共介质,容器或将A类和B类绑定在一起的接口。您可以使用该界面来操作这些对象。
或者,您可以将对象默认视为列表。明白了吗?
答案 2 :(得分:1)
考虑创建一个可以容纳Wrapper<ClassA>
或ClassA
实例的类(List
)。然后将Lists
和内部Lists
设为List<Wrapper<ClassA>>
答案 3 :(得分:0)
您应该定义类节点,如下所示
public class Node {
List<Node> children = new ArrayList<Node>();
}