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];