相关疑难解决方法(0)

无法在Java中创建LinkedLists数组......?

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

在我的课堂上,我有一个数组的声明:

private LinkedList<IntegerNode>[] myMatrix;
Run Code Online (Sandbox Code Playgroud)

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

myMatrix = new LinkedList<IntegerNode>[numRows];
Run Code Online (Sandbox Code Playgroud)

我最终得到的错误是

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

所以,我有两个问题:

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

IntegerNode是我创建的一个类.并且,我的所有类文件都打包在一起.

java arrays generics

99
推荐指数
3
解决办法
7万
查看次数

如何在Java中实例化一组地图?

我可以使用泛型声明一个地图数组来指定地图类型:

private Map<String, Integer>[] myMaps;
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何正确实例化它:

myMaps = new HashMap<String, Integer>[count]; // gives "generic array creation" error
myMaps = new HashMap[count]; // gives an "unchecked or unsafe operation" warning
myMaps = (Map<String, Integer>[])new HashMap[count]; // also gives warning
Run Code Online (Sandbox Code Playgroud)

如何在不收到编译器错误或警告的情况下实例化此数组映射?

更新:

谢谢大家的回复.我最终得到了List建议.

java arrays generics instantiation map

36
推荐指数
3
解决办法
6万
查看次数

Java泛型和数组初始化

以下是什么解释:

public class GenericsTest {
    //statement 1
    public ArrayList<Integer>[] lists;

    public GenericsTest()
    {
            //statement 2
        lists = new ArrayList<Integer>[4];
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器接受语句1.语句2由编译器标记为"通用数组创建".

我已经看到一个关于禁止泛型数组的一个很好的解释是这个,认为由于数组是协变的,而泛型不是你可以破坏泛型类型,如果你允许泛型数组.

撇开关于这种语言是否应该极端地在泛型的处理方面造成这种复杂的不一致性的争论,无论你怎么努力都不让自己开枪(如果有人知道关于亲戚的任何好的讨论)问题的优点/缺点请发帖,我有兴趣看看论点),如果(2)不是,为什么要声明(1)?

java arrays generics

18
推荐指数
2
解决办法
5602
查看次数

Java 7中简化的Varargs方法调用

在Java 7中,您可以选择放置@SafeVarargs注释以抑制在使用不可重新生成的varargs参数编译方法时获得的警告.Project Coin的提议规定,当方法确保只有与varargs参数相同类型的元素存储在varargs数组中时,才应使用注释.

什么是非安全方法的例子?

java generics variadic-functions java-7

16
推荐指数
1
解决办法
8457
查看次数

带有泛型的地图数组的问题

可能重复:
Java泛型和数组初始化
如何在Java中实例化地图数组?

我知道我能做到:

Map<String, Object> map = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)

所以我应该能够:

Map<String, Object>[] maps = new HashMap<String, Object>[10];
Run Code Online (Sandbox Code Playgroud)

但这不起作用,给出编译问题.

java arrays generics map

-1
推荐指数
1
解决办法
1721
查看次数