无法在Java中创建LinkedList数组…?

我正在研究一个稀疏矩阵类,该类需要使用数组LinkedList来存储矩阵的值。数组的每个元素(即每个LinkedList)代表矩阵的一行。并且,LinkedList数组中的每个元素代表一列和存储的值。

在我的课程中,我将数组声明为:

private LinkedList<IntegerNode>[] myMatrix;

并且,在的构造函数中SparseMatrix,我尝试定义:

myMatrix = new LinkedList<IntegerNode>[numRows];

我最终得到的错误是

无法创建的通用数组LinkedList<IntegerNode>。

因此,我有两个问题:

  1. 我做错了什么
  2. 如果无法创建数组,为什么在数组的声明中可以接受该类型?

IntegerNode是我创建的课程。而且,我所有的类文件都打包在一起。

回答:

你不能使用通用数组创建。这是Java泛型的缺陷/功能。

没有警告的方式是:

  1. 使用列表列表而不是列表数组:

List< List<IntegerNode>> nodeLists = new LinkedList< List< IntegerNode >>();

  1. 声明列表数组的特殊类:

class IntegerNodeList {

private final List< IntegerNode > nodes;

}

以上是 无法在Java中创建LinkedList数组…? 的全部内容, 来源链接: utcz.com/qa/432598.html

回到顶部