我有類似下面:將arraylist的arraylist轉換爲數組?
ArrayList<Integer>[] aL = new ArrayList[25];
for (int i = 0; i < aL.length; i++) {
aL[i] = new ArrayList<Integer>();
}
一些邏輯後,我遇到的結構如下圖所示:
aL[0] = {492,19,183,193};
aL[1] = {13};
aL[2] = {19,56};
aL[3] = {};
aL[4] = {1};
...
我想連接aL
到一個新的連續陣列。上述示例的最終結果將爲newArray = {492,19,183,193,13,19,56,1,...}
。要注意的是,我確切地知道應該有多少整數。我試過如下:
newArray = new int[100]; //recall the number of ints is defined, ex. 100
int a = 0;
for (int i = 0; i < aL.length; i++) {
for (int k = 0; k < aL[i].size(); k++) {
newArray[a] = aL[i].remove(0);
a++;
}
}
在打印數組時,有些值丟失。我正在檢查嵌套循環迭代的次數,有時候例如aL[i].size()
是5
,它可能只會迭代4
次。
請勿在遍歷時修改列表 - 用'newArray [a] = aL [i] .get(k);' – Smutje
@Smutje替換「刪除」行,好點。我並不認爲for循環的結束條件是動態的,即。 'aL [i] .size()'隨着元素被刪除而改變,並且反映在循環條件中。 – gator
它應該是'newArray [a] = aL [i] .get(k);'而不是'0'。 – Codebender