gpt4 book ai didi

java - 如何设置二维ArrayList的大小?

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

所以我试图制作一个二维ArrayList,它有一定数量的ArrayList,然后每个ArrayList 都可以包含所需的数量。我知道数组会动态更改大小,但我试图保证在这种情况下至少具有一定的大小。

ArrayList<ArrayList<Integer>> integers = new ArrayList<ArrayList<Integer>>(10);

这行不通。我希望能够将新整数的位置设置为第一个维度的索引之一,如下所示:

integers.get(7).add(new Integer(42));

这只是给了我一个 IndexOutOfBoundsException,就好像 ArrayList 中没有 Integer ArrayList 一样。有没有办法做到这一点?我确信这是我没有看到的简单事情。

最佳答案

数组列表不会像这样工作。它们不是数组。

您创建的列表由至少 10 个元素的数组支持,但它本身不包含任何元素,因此您不能引用第 7 个元素或实际上任何一个元素。

integers.size() would return 0
integers.isEmpty() would return true
integers.get(0) would throw

此外,您初始化的列表需要填充列表本身:

for (int i = 0; i < 10; ++i) {
row = new ArrayList<Integer>()
integers.add(row);
}
// now integers is a 10-element list of empty lists

或者,您可以使用原始数组(如果您想要一个固定大小的矩形)。

int integers[][] = new int[10][];
for (int i = 0; i < integers.length; ++i) {
integers[i] = new int[10]; // rows are initialized to 0, as int is primitive
}
for (final int[] arr : integers) {
System.out.println(Arrays.toString(arr));
}

关于java - 如何设置二维ArrayList的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46556394/

24 4 0