[英]Dynamically allocated array of arrays in java
我有一個數組數組對象的問題。 我嘗試了這樣的默認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));
}
您將相同的ArrayList
實例兩次添加到外部List
。
您需要創建兩個不同的ArrayList
實例以添加到您的arrayOfArrays
。
更換
array.clear();
同
array = new ArrayList<>();
你應該知道你只是使用相同的array
對象,並將它添加到arrayOfArrays
兩次,這就是為什么它打印兩次相同的東西。
你需要的是這個:
ArrayList<ArrayList<String>> arrayOfArrays = new ArrayList<>();
ArrayList<String> array1 = new ArrayList<>();
array1.add("1");
array1.add("2");
array1.add("3");
arrayOfArrays.add(array1);
System.out.println(arrayOfArrays);
ArrayList<String> array2= new ArrayList<>();
array2.add("4");
array2.add("5");
array2.add("6");
arrayOfArrays.add(array2);
System.out.println(arrayOfArrays);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.