Java数组Arrays.fill()方法
实用型方法
用于一维数组、二维数组的初始化或者填充
对于一维数组和二维数组写点学习心得
在Java API 中的
public static void fill(Object[] a, int fromIndex, int toIndex, Object val)将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则填充范围为空。)
参数:
a - 要填充的数组
fromIndex - 要使用指定值填充的第一个元素的索引(包括)
toIndex - 要使用指定值填充的最后一个元素的索引(不包括)
val - 要存储在数组的所有元素中的值
抛出:
IllegalArgumentException - 如果 fromIndex > toIndex
ArrayIndexOutOfBoundsException - 如果 fromIndex < 0 或 toIndex > a.length
ArrayStoreException - 如果指定值不是可存储在指定数组中的运行时类型
以boolean 举例(以下api截取):
static void fill(boolean[] a, boolean val)
将指定的布尔值分配给指定的布尔数组的每个元素。
static void fill(boolean[] a, int fromIndex, int toIndex, boolean val)
将指定的布尔值分配给指定数组布尔值的指定范围的每个元素。
一维数组举例:
boolean[] a1 = new boolean[5];
Arrays.fill( a1,true );
结果 a1[] = {true,true,true,true,true};
boolean[] a1 = new boolean[5];
Arrays.fill( a1,true );
Arrays.fill( a1,3,4,false);
结果 a1[] = {true,true,true,false,true};
第一个参数指操作的数组,第二个和第三个指在该数组的某个区域内插入第四个参数,
一定要注意:1.java的数组下标从0开始
2.第二个参数指起始元素下标(包括该下标)
3.第三个参数指结束下标(不包括该下标)
二维数组举例:
int[][] map=new int[4][5];
Arrays.fill(map,-1);//失败
如果按照上述填充二维数组必定会报错。因为在函数的内部也是用for循环的方式实现的。
fill()函数源码:
public static void fill(Object[] a, Object val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
但是我们可以这样赋值,把一维数组当做一个对象:
int[][] map=new int[4][5];
int[] ten=new int[10];
Arrays.fill(ten, -1);
Arrays.fill(map,ten); //成功
end…