gpt4 book ai didi

java - 为什么我无法创建 2D ArrayList?

转载 作者:行者123 更新时间:2023-12-01 18:58:39 24 4
gpt4 key购买 nike

我正在尝试编写以下代码...

static ArrayList<RssItem>[][] list = new ArrayList<RssItem>[][]; 

这行不通。如果我尝试创建 ArrayList<RssItem> 的列表,我做错了什么?

最佳答案

您需要在 RHS 上提供尺寸:-

static List<RssItem>[][] arr = (List<RssItem>[][])new List<?>[4][];

不需要的大小,但您也可以给出它:-

static List<RssItem>[][] arr = (List<RssItem>[][])new List<?>[4][5];

注意:-

您不能将特定类型指定为RHS上的类型参数。您必须使用通配符。仅当您在数组中实例化 list 时才会给出特定类型。

要将某些内容添加到数组中,您可以使用这种循环:-

未经测试

    List<RssItem>[][] arr = (List<RssItem>[][])new ArrayList<?>[4][4];

for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = new ArrayList<RssItem>();

arr[i][j].add(new RssItem());
}
}

for (List<RssItem>[] val: arr) {
for (List<RssItem> val2: val) {
System.out.println(val2);
}
}

附注:-

请不要使用List的二维数组。这相当于一个 3 维数组。即使你让上面的循环以某种方式工作。它会让你的代码将来变得困惑。还有你的生活 hell 。 Java 中还有许多其他数据结构,您应该考虑,例如 Map,它在这种情况下很有用。

甚至,拥有最多 3 层的 List 也是一个非常糟糕的主意。所以,请改变你的设计。

关于java - 为什么我无法创建 2D ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099788/

24 4 0