排序
sort(int[] a)
: 對指定 int 型數組按數字升序進行排序。sort(Object[] a)
: 對指定對象數組進行排序(對象的類必須實現 Comparable 接口)。sort(T[] a, Comparator<? super T> c)
: 使用指定的比較器對數組進行排序。sort(int[] a, int fromIndex, int toIndex)
: 對數組指定范圍的元素進行排序。
int[] array = {5, 3, 8, 4, 2};
Arrays.sort(array);
System.out.println(Arrays.toString(array)); // 輸出 [2, 3, 4, 5, 8]
搜索
binarySearch(int[] a, int key)
: 使用二分搜索算法在已排序的數組中搜索指定的值。binarySearch(Object[] a, Object key)
: 類似上面的方法,但用于對象數組。binarySearch(T[] a, int fromIndex, int toIndex, T key)
: 在指定范圍的已排序數組中搜索值。
int[] sortedArray = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(sortedArray, 3);
System.out.println(index); // 輸出 2,因為 3 在索引 2 的位置
比較
equals(int[] a, int[] a2)
: 如果兩個數組在長度和元素上都相等,則返回 true。deepEquals(Object[] a1, Object[] a2)
: 如果兩個對象數組在長度和元素上都相等(使用?equals()
?方法比較元素),則返回 true。compare(byte[] a, byte[] b)
: 按字典順序比較兩個字節數組。
int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
boolean isEqual = Arrays.equals(array1, array2);
System.out.println(isEqual); // 輸出 true
填充
fill(int[] a, int val)
: 將指定值分配給指定 int 型數組的每個元素。fill(Object[] a, Object val)
: 類似上面的方法,但用于對象數組。fill(int[] a, int fromIndex, int toIndex, int val)
: 將指定范圍的數組元素設置為指定值。
int[] array = new int[5];
Arrays.fill(array, 8);
System.out.println(Arrays.toString(array)); // 輸出 [8, 8, 8, 8, 8]
復制
copyOf(int[] original, int newLength)
: 復制指定的數組,截斷或填充以獲取所需長度的新數組。copyOfRange(int[] original, int from, int to)
: 將指定數組的指定范圍復制到新數組。
int[] original = {1, 2, 3, 4, 5};
int[] copied = Arrays.copyOf(original, 7); // 長度為 7 的新數組,多余的位置默認為 0
System.out.println(Arrays.toString(copied)); // 輸出 [1, 2, 3, 4, 5, 0, 0]
轉換為字符串
toString(int[] a)
: 返回指定數組內容的字符串表示形式。deepToString(Object[] a)
: 返回對象數組的字符串表示形式,其中數組的每個元素都是其?toString()
?方法的返回值。
int[] array = {1, 2, 3};
String str = Arrays.toString(array);
System.out.println(str); // 輸出 [1, 2, 3]
?其他實用方法
asList方法?
注意:返回的列表大小是固定的,不支持?add
?或?addAll
?操作。
List<Integer> list = Arrays.asList(1, 2, 3);
System.out.println(list); // 輸出 [1, 2, 3]
// 以下操作會拋出 UnsupportedOperationException
// list.add(4); // 不支持
hashCode方法
通常不需要直接調用此方法,但在某些自定義對象需要重寫?hashCode
?方法時,可能會作為參考。
int[] array = {1, 2, 3};
int hashCode = Arrays.hashCode(array);
System.out.println(hashCode); // 輸出數組內容的哈希碼
setAll方法
該方法用于通過給定的生成器函數為數組的每個索引生成新的值。
int[] array = new int[5];
Arrays.setAll(array, i -> i * 2); // 使用 lambda 表達式為每個索引生成值
System.out.println(Arrays.toString(array)); // 輸出 [0, 2, 4, 6, 8]
?