包含 TreeNode 的数组的 ArrayList

ArrayList of Array which contains TreeNode

我想创建一个由树节点组成的数组列表。我的审判是

ArrayList<Arrays<treeNode>> aList = new ArrayList<Arrays<treeNode>>();
Arrays<TreeNode> aNodes = new ArrayList<TreeNode>();

但是报错。 (包括实用程序)

正确的写法是什么?我的目标是找到二叉树中节点的最小深度(只是为了找到最小深度而不是找到该节点本身,我将把级别放入数组列表中,一旦大小不是 2^j,那么最小级别是 j-1 ).

提前感谢任何help/hint/solutions...

Arrays class 是一个实用程序 class,不是您用于数组的类型。数组 class 从不采用通用参数,这就是您的错误告诉您的内容。

如果您想要一个包含数组的 ArrayList,那么您可能正在寻找这样的东西:

ArrayList<TreeNode[]> aList = new ArrayList<>();

我建议不要混合数组和 ArrayLists。最好将 List 嵌套在 List.

List<List<TreeNode>> aList  = new ArrayList<>();
List<TreeNode>       aNodes = new ArrayList<>();

请注意空的 <> 钻石是 shorthand 用于:

List<List<TreeNode>> aList  = new ArrayList<List<TreeNode>>();
List<TreeNode>       aNodes = new ArrayList<TreeNode>();
List<TreeNode[]> myList = new ArrayList<TreeNode[]>();

TreeNode[] aNodes = new TreeNode[fixedSizeArray];

这就是创建数组列表和数组的方法。根据你的描述,我建议参考一些 java 的例子,这些例子可以做更简单的事情,比如 OSPF 等。看看什么样的使用数据结构以及如何使用。