[英]Can I initialize a array/arraylist<int> of 2D array in Java?
我可以初始化2D数组的ArrayList,这是一个什么东西?
所以当我尝试初始化时,下面是我的代码
ArrayList<int>[][] suffle = new ArrayList<int>[row][col];
我收到这样的错误:
错误:语法错误,插入“Dimensions”以完成ReferenceType
我怎样才能解决这个问题?
这是一件事,但你必须使用一个对象,而不是一个原始对象。 这适用于所有通用类型。
ArrayList<Integer>[][] suffle = new ArrayList[row][col];
您将获得有关上述声明的编译器警告,但完全可以这样做。
根据您正在做的事情,最好使用列表列表,这将确保类型安全性与您从上面得到的未经检查的警告相反...
List<List<Integer>> suffle = new ArrayList<>();
......或标准的二维数组:
int[][] suffle = new int[row][col];
你也可以完全坚持原语,即
int[][] i = new int[row][col];
或者混合并匹配int []列表
ArrayList<int[]> al = new ArrayList<>();
几乎是一系列的清单:
/* writing new ArrayList<Integer>[1], which is what
you'd want to do, is not allowed for array creation.*/
ArrayList<Integer>[] a = new ArrayList[1];
是的,您可以创建一个Object类型的二维数组(在本例中为ArrayList)。
但你需要把它写成:
ArrayList<Integer>[][] suffle = new ArrayList[row][col];
在初始化数组列表之前,还要确保将row和col初始化为整数值。
suffle的各个元素将被声明为ArrayList类型,但不会被初始化。 您需要单独初始化它们。
无论何时需要在菱形括号中使用泛型类型,都不应使用原始类型,如int,double等。应使用相应的包装类型,如Integer和Double等。
我在许多论坛上看到这个问题后,我已经在我的博客上用例子解释了这个问题 - http://www.javabrahman.com/corejava/how-to-resolve-syntax-error-insert-dimensions-to -完整,引用类型/
(注意/披露 - 以上链接来自我拥有的博客)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.