1

我有一个集合,其中每个节点要么是 A 类,要么是 A 类的集合。

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

我目前只是使用 List,然后检查 Object 以查看它是 Class A 还是 Class A List,但这似乎违背了使用泛型的目的。我想我需要一个更像树的结构。想法?

4

4 回答 4

5

看看复合设计模式。

于 2012-09-14T13:29:17.580 回答
2

当您实例化一个泛型类型时,您仍然会在集合中存储同质类型。在现实世界中,您这样做的方式是建立一个将 A 类和 B 类绑定在一起的通用介质、容器或接口。您使用界面来操作这些对象。

或者,默认情况下,您可以将对象视为列表。明白了吗?

于 2012-09-14T13:31:28.947 回答
1

考虑创建一个类 ( Wrapper<ClassA>),它可以包含 的实例ClassAList. 然后让你Lists和内在Lists成为List<Wrapper<ClassA>>

于 2012-09-14T13:34:38.870 回答
0

您应该定义类节点,如下所示

    public class Node {
       List<Node> children = new ArrayList<Node>();
    }
于 2012-09-14T13:34:14.770 回答