java - 如果数组大小先验未知,如何填充数组

标签 java arrays dynamic integer fill

如何避免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/

相关文章:

将int数组转换为C中的单个整数

javascript - 数组中一系列数字的总和

javascript - 使用高阶函数的 N*N 大小的单位矩阵

Java运行时注解

java - java中解析js时间戳

java - 替换 Wicket 口中的字符串

java - 这是重用/共享方法的好方法吗?

java - 如何解决 "Invalid character found in the HTTP protocol [HTTP/1.10x0aHost:]"?

excel - 在VLOOKUP中动态更改源工作簿的文件路径

Swift 3 - 类名/类型查找