gpt4 book ai didi

java - java中动态分配的数组数组

转载 作者:行者123 更新时间:2023-11-29 04:53:07 25 4
gpt4 key购买 nike

我对数组对象的数组有疑问。我尝试了这样的默认 Java 数组:

String[][] array = new String[5][5];

它奏效了。但现在我面临另一个问题。我不知道数组的大小,所以我需要一个动态分配的数组。我试过这个:

ArrayList<String> array = new ArrayList<>();
ArrayList<ArrayList<String>> arrayOfArrays = new ArrayList<>();

array.add("1");
array.add("2");
array.add("3");
arrayOfArrays.add(array);
System.out.println(arrayOfArrays);
array.clear();
array.add("4");
array.add("5");
array.add("6");
arrayOfArrays.add(array);
System.out.println(arrayOfArrays);

它打印:

[[1, 2, 3]]
[[4, 5, 6], [4, 5, 6]]

而且我不需要重写它。它应该看起来像这样:

[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]

我很长一段时间都面临这个问题,我尝试了很多解决方法,但我需要一些聪明的解决方案。我也将不胜感激任何帮助。

我还有第二个问题。如何在循环中添加它?因为它具有与第一种情况相同的输出。例如:

for (int i = 0; i < array.size() - 1; i++) {
arrayOfArrays.add(swap(array, i, i+1));
}

最佳答案

您正在向外部 List 添加相同的 ArrayList 实例两次。

您需要创建两个不同的 ArrayList 实例以添加到您的 arrayOfArrays

替换

array.clear();

array = new ArrayList<>();

关于java - java中动态分配的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com