一、定義與簡介
Arrays.fill()方法屬於Java.util.Arrays類,它是一個靜態方法,用於將數組中指定範圍的元素賦值為指定的值。Arrays.fill()方法的原型如下:
public static void fill(int[] a, int val)
public static void fill(long[] a, long val)
public static void fill(double[] a, double val)
public static void fill(boolean[] a, boolean val)
public static void fill(Object[] a, Object val)
該方法接收兩個參數,第一個參數為要填充的數組,第二個參數為要填充的值。
二、用法示例
以下是一些使用Arrays.fill()填充數組的示例:
// 示例1:用整數類型填充數組
int[] arr = new int[5];
Arrays.fill(arr, 3);
System.out.println(Arrays.toString(arr));
// 輸出結果:[3, 3, 3, 3, 3]
// 示例2:用boolean類型填充數組
boolean[] boolArr = new boolean[4];
Arrays.fill(boolArr, true);
System.out.println(Arrays.toString(boolArr));
// 輸出結果:[true, true, true, true]
// 示例3:用Object類型填充數組
String[] strArr = new String[3];
Arrays.fill(strArr, "Java");
System.out.println(Arrays.toString(strArr));
// 輸出結果:[Java, Java, Java]
三、填充部分數組
同時,我們可以使用Arrays.fill()方法只填充數組的部分元素,而不是整個數組:
// 示例1:只填充一個部分為5的數組元素
int[] arr = {1, 2, 3, 4, 5, 6, 7};
Arrays.fill(arr, 1, 6, 0);
System.out.println(Arrays.toString(arr));
// 輸出結果:[1, 0, 0, 0, 0, 0, 7]
// 示例2:只填充奇數下標的數組元素
int[] arr = {1, 2, 3, 4, 5, 6, 7};
for (int i = 1; i < arr.length; i += 2) {
arr[i] = -1;
}
System.out.println(Arrays.toString(arr));
// 輸出結果:[1, -1, 3, -1, 5, -1, 7]
在示例1中,我們填充了索引從1到5的部分數組元素為0。在示例2中,我們只填充了奇數下標的數組元素為-1,而沒有填充偶數下標的數組元素。
四、性能分析
Arrays.fill()方法的性能比循環遍曆數組然後逐個賦值更高效。這是因為Arrays.fill()方法實現了System.arraycopy()方法,它將要填充的元素複製到數組中,從而避免了循環遍曆數組的時間開銷。
以下是一個比較Arrays.fill()方法和循環遍曆數組的性能的示例。
public class FillTest {
// 使用Arrays.fill()方法填充數組
public static void fillArr1(int[] arr, int val) {
Arrays.fill(arr, val);
}
// 使用for循環遍曆數組填充數組
public static void fillArr2(int[] arr, int val) {
for (int i = 0; i < arr.length; i++) {
arr[i] = val;
}
}
// 測試性能
public static void test() {
int[] arr = new int[100000000];
long start, end;
start = System.currentTimeMillis();
fillArr1(arr, 1);
end = System.currentTimeMillis();
System.out.println("Arrays.fill() Time:" + (end - start));
start = System.currentTimeMillis();
fillArr2(arr, 1);
end = System.currentTimeMillis();
System.out.println("for loop Time:" + (end - start));
}
}
在使用Arrays.fill()方法填充大數組時,Arrays.fill()方法的效率要比使用循環遍曆數組的方式更快。
五、總結
在此文中,我們學習了Java中Arrays.fill()方法的使用方法以及它的性能表現。該方法可以提高填充數組的效率,適用於初始化或重置數組的場景。
總之,Arrays.fill()方法是Java中強大而有用的方法之一,我們需要在實際編程中加以運用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/153987.html