正如标题所说,我想制作一个二维数组,如下所示:
List<List<Integer>>[][] dp = new LinkedList<List<Integer>>[3][3];
然后编译器不允许我这样做。 很容易想到用一个类来封装。像这样:
class Node{
List<List<Integer>> list = ...;
}
Node[][] nodes = new Node[3][3];
但我想知道是否存在更简单的方法来实现这一点。
最佳答案
如果你想要简单,你将不得不忍受这个丑陋的类型转换:
List<List<Integer>>[][] dp = (LinkedList<List<Integer>>[][]) new Object[3][3];
在 java 中,我们不能创建泛型数组。这是一个很长的讨论,我鼓励你阅读它。
简而言之,java 对泛型一无所知——它只是在编译时检查类型安全,然后将泛型“翻译”为普通的 Object
关于java - 我可以做一个二维数组,它的元素是 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42325402/