我有类似下面:将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