Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 我可以做一个二维数组,它的元素是List吗_Java_Arrays - Fatal编程技术网

Java 我可以做一个二维数组,它的元素是List吗

Java 我可以做一个二维数组,它的元素是List吗,java,arrays,Java,Arrays,正如标题所说,我想制作一个二维数组,如下所示: List<List<Integer>>[][] dp = new LinkedList<List<Integer>>[3][3]; List[][]dp=newlinkedlist[3][3]; 那么编译器不允许我这么做。 很容易考虑使用类来封装它。像这样: class Node{ List<List<Integer>> list = ...; } Node[][]

正如标题所说,我想制作一个二维数组,如下所示:

List<List<Integer>>[][] dp = new LinkedList<List<Integer>>[3][3];
List[][]dp=newlinkedlist[3][3];
那么编译器不允许我这么做。 很容易考虑使用类来封装它。像这样:

class Node{
    List<List<Integer>> list = ...;
}
Node[][] nodes = new Node[3][3];
类节点{
列表=。。。;
}
节点[][]节点=新节点[3][3];

但我想知道有没有更简单的方法来实现这一点。

如果你想要简单,你就必须接受这个丑陋的演员阵容:

List<List<Integer>>[][] dp = (LinkedList<List<Integer>>[][]) new Object[3][3];
List[]]dp=(LinkedList[][])新对象[3][3];
在java中,我们不能创建泛型数组。这是一个很长的讨论,我鼓励大家阅读


简而言之,java对泛型一无所知——它只是在编译时检查类型安全性,然后将泛型“翻译”为普通的
对象
我更喜欢创建一个扩展
列表的类,如下所示:

private static class ListOfList extends LinkedList<List<Integer>> {}


请注意,我使用了一个嵌套类,因此它将进入您的主类。

您能告诉我们此数据结构的实际需要是什么吗?问题可以简化为列出[]dp=new LinkedList[3]@提姆只是出于好奇
ListOfList[][] dp = new ListOfList[3][3];