类型列表和类型集合的Java数据结构

时间:2012-09-14 13:26:18

标签: java data-structures

我有一个集合,其中每个节点都是A类或A类集合。

这也是递归的,因为A类集合中的每个节点都可以是A类或A类集合。

我目前正在使用List,然后检查Object以查看它是A类还是A类列表,但这似乎打败了使用泛型的目的。我想我需要一个更像树的结构。思考?

4 个答案:

答案 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>();
    }