正如标题所说,我想制作一个如下所示的二维数组:
List<List<Integer>>[][] dp = new LinkedList<List<Integer>>[3][3];
然后编译器不允许我这样做。 很容易想到使用类来封装它。像这样:
class Node{
List<List<Integer>> list = ...;
}
Node[][] nodes = new Node[3][3];
但我想知道是否存在更简单的方法来实现这一点。
答案 0 :(得分:1)
如果你想要简单,你将不得不忍受这个丑陋的演员:
List<List<Integer>>[][] dp = (LinkedList<List<Integer>>[][]) new Object[3][3];
在java中,我们无法创建通用数组。这是一个长时间的讨论,我鼓励你阅读它。
简而言之,java对泛型一无所知 - 它只是在编译时检查类型安全性,然后&#34;翻译&#34;普通Object
答案 1 :(得分:0)
我更喜欢创建一个扩展List
的类,如下所示:
private static class ListOfList extends LinkedList<List<Integer>> {}
比,
ListOfList[][] dp = new ListOfList[3][3];
请注意,我使用了嵌套类,因此它将进入主类。