如何避免java.lang.ArrayIndexOutOfBoundsException
如果 indexes
的大小先验未知吗?
Integer[] indexes = new Integer[]{};
int num = 0;
for (ArrayList<Integer[]> arr: list) {
for (int i=0; i<arr.length; i++) {
indexes[num] = arr[i];
num++;
}
}
目标是得到一个一维数组Integer[] indexes
来自二维数组 ArrayList<Integer[]> list
.
更新:
例如:
list[0] = {1,2,3} list[1] = {4}
我需要得到:
indexes = {1,2,3,4}
最佳答案
使用新的ArrayList
(newList.add(arr[i])
),然后调用toArray()
:
Integer[] indexes = newList.toArray(new Integer[newList.size()]);
一个不太有效的解决方案,不使用中间列表 - 您可以循环整个结构一次只是为了计算元素。然后用预先计算的大小实例化数组。
关于java - 如果数组大小先验未知,如何填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8734129/