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

标签 java arrays

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

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/

相关文章:

java - 像这样使用计时器的目的是什么?

Java - XStream 关​​闭与文件的连接

c - SPOJ - 好斗的奶牛, "largest minimum distance"术语的含义是什么?

javascript - 循环遍历数组对象

Java 随机化并从函数返回一个数组

c++存储超出数组范围的值

java - Libgdx-在表行中定位参与者

java - 如何在 Java 中对 XML 文件进行微小的编辑

java - 接口(interface)如何在其签名或返回类型中包含引用接口(interface)具体实现类型的方法?

c - 使用数组和堆栈进行十进制到二进制转换