Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java树错误_Java - Fatal编程技术网

Java树错误

Java树错误,java,Java,我正在尝试实现一个基于数组的树,其中每个节点都有一个子节点列表,我得到了一个需要帮助修复的错误 错误: Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lassign2Trees.ArrayTreeNode; at assign2Trees.ArrayTree.<init>(ArrayTree.java:15) at assign2Tre

我正在尝试实现一个基于数组的树,其中每个节点都有一个子节点列表,我得到了一个需要帮助修复的错误

错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lassign2Trees.ArrayTreeNode;
 at assign2Trees.ArrayTree.<init>(ArrayTree.java:15)
 at assign2Trees.ArrayTree.main(ArrayTree.java:97
线程“main”java.lang.ClassCastException:[Ljava.lang.Object;中的异常;无法强制转换为[Lassign2Trees.ArrayTreeNode; 在assign2Trees.ArrayTree.(ArrayTree.java:15) 位于assign2Trees.ArrayTree.main(ArrayTree.java:97 )

我相信错误来自这里:

ArrayTreeNode<E>[] tree = (ArrayTreeNode<E>[]) new Object[1];
ArrayTreeNode[]树=(ArrayTreeNode[])新对象[1];
ClassCastException:[Ljava.lang.Object;无法强制转换为[Lassign2Trees.ArrayTreeNode;
在assign2Trees.ArrayTree.(ArrayTree.java:15)
指这一行:

 ArrayTreeNode<E>[] tree = (ArrayTreeNode<E>[]) new Object[1];
ArrayTreeNode[]树=(ArrayTreeNode[])新对象[1];
不能将
对象[]
强制转换为任何其他类型


即使这样做有效,紧接着还有另一个错误:Java中的数组从0开始索引,而不是从1开始。要访问数组中的第一个元素,请参考
树[0]

@Brian,您不能实例化通用数组(即
ArrayTreeNode[size]
)。要在数组中存储节点,只需删除类型参数(部分)并使用原始类型-
ArrayTreeNode[]tree=new ArrayTreeNode[size]
。此外,我认为您可能需要重新考虑您的总体策略-您似乎在数组中混合了存储元素(但是数组的大小只有1,你永远不会调整它的大小)并将节点存储在树中,同时引用父节点和子节点。假设这是HW,我认为这不是要求你做的。Wikipedia对在数组中存储二叉树的常用方法有一个很好的描述:请使用更具描述性的标题。
 ArrayTreeNode<E>[] tree = (ArrayTreeNode<E>[]) new Object[1];