通过Arrays类的静态方法fill()来对数组中的元素进行替换,有两种参数类型
第一种形式
将指定的int值分配给int型数组的每个元素,语法如下:
fill(int[] a,int value)
a:要进行元素替换的数组
value :要存储数组中所有元素的值
tips:fill()方法的源码如下:
public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
由源码可以看出,fill方法只能对一维数组进行操作。但是,其实二维数组,就是一维数组嵌套着多个一维数组而已,即一维数组中的每个元素都是一维数组,因此我们可以进行以下写法实现二维数组的填充
package arrays;
import java.util.Arrays;
public class ArrayFill {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a[][];
int i = 0;
a = new int[3][5];
//方法一:
for(int arr[] : a) {
i++;
int j = 0;
Arrays.fill(arr,3);
for(int e : arr) {
System.out.print(e + " ");
}
System.out.println();
}
System.out.println();
//方法二:
int[] b = new int[5];
Arrays.fill(b, 3);
Arrays.fill(a, b);
for(int x = 0; x < a.length; x++) {
for(int y = 0; y < b.length; y++) {
System.out.print(a[x][y] + " " );
}
System.out.println();
}
//或者
System.out.println();
int[] c = new int[] {3,6,3,2,3};
Arrays.fill(a, c);
for(int p[] : a) {
for(int e : p) {
System.out.print(e + " ");
}
System.out.println();
}
}
}
第二种形式
将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括)。如果fromIndex == toIndex
fill(int[] a,int fromIndex,int toIndex,int value)
a:要进行填充的数组
from Index:要使用指定值填充的第一个元素的索引(包括)
tiIndex:要使用指定值填充的最后一个元素的索引(不包括)
value:要分配给数组指定范围中的每个元素的值
System.out.println();
int[] d = new int[5];
Arrays.fill(d,1,4,8);
Arrays.fill(a,d);
for(int p[] : a) {
for(int e : p) {
System.out.print(e + " ");
}
System.out.println();
}
运行结果如下: