我有一个大的2D数组:
int[][] matrix = new int[10000][1000];
该程序需要经常使用:
Arrays.fill(int[] a, int fromIndex, int toIndex, int val);
但有时它需要填充一行,有时需要填充一列。 例如,我可以从10到最后填充一行200×1:
Arrays.fill(matrix[200], 10, 1000, 1);
但是如何填充没有for()
的列?
是否存在允许以速度执行两种操作的数据结构,与Arrays.fill()
?
答案 0 :(得分:4)
如果你查看Arrays.fill()
的源代码(下面复制了),你会发现它只是一个for循环。
public static void fill(int[] a, int fromIndex, int toIndex, int val) {
rangeCheck(a.length, fromIndex, toIndex);
for (int i=fromIndex; i<toIndex; i++)
a[i] = val;
}
因此,编写一个for循环来填充数组的列将是Arrays.fill()
给你的相同类型的代码。