我正在研究一个稀疏矩阵类需要使用LinkedList
的数组来存储矩阵的值。该阵列的每个元素(即每个LinkedList
)代表矩阵的一行。而且,LinkedList
数组中的每个元素都表示一列和存储的值。无法在Java中创建LinkedLists数组... ...?
在我的课,我有数组的声明:
private LinkedList<IntegerNode>[] myMatrix;
而且,在我的构造为SparseMatrix
,我尝试定义:
myMatrix = new LinkedList<IntegerNode>[numRows];
我结束了错误得到的是
无法创建
LinkedList<IntegerNode>
的通用数组。
所以,我有两个问题与此:
- 我在做什么错了,
- 为什么在声明数组可以接受的类型,如果它不能被创造出来的?
IntegerNode
是我创建的一个类。而且,我所有的类文件都打包在一起。
我研究了一个类似的问题,并且读了上面的cast是在整个集合框架中使用的非常常见的'hack'。 – luke 2008-10-20 12:25:39
IMO,这应该是选定的答案。我还没有尝试过,但我有直觉,谢尔盖的#2方法造成了相当多的开销;而且我是#1的确实。列表在数个方面不如数组有效,我不会在这里详细说明,但是我已经完成了实验,并且在使用列表和数组时比较看到了大大的减速。只管理自己的数组并重新分配它们比将列表添加到List更快。 – Ricket 2009-07-30 16:02:29
@Ricket我同意,取自http://www.ibm.com/developerworks/java/library/j-jtp01255/index.html – Peteter 2011-08-01 15:39:38