Java的Arrays.fill()与多维数组

时间:2013-06-01 00:23:51

标签: java arrays performance

我有一个大的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()

相当

1 个答案:

答案 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()给你的相同类型的代码。