排序
sort(int[] a)
: 对指定 int 型数组按数字升序进行排序。sort(Object[] a)
: 对指定对象数组进行排序(对象的类必须实现 Comparable 接口)。sort(T[] a, Comparator<? super T> c)
: 使用指定的比较器对数组进行排序。sort(int[] a, int fromIndex, int toIndex)
: 对数组指定范围的元素进行排序。
java
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)
: 在指定范围的已排序数组中搜索值。
java
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)
: 按字典顺序比较两个字节数组。
java
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)
: 将指定范围的数组元素设置为指定值。
java
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)
: 将指定数组的指定范围复制到新数组。
java
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()
方法的返回值。
java
int[] array = {1, 2, 3};
String str = Arrays.toString(array);
System.out.println(str); // 输出 [1, 2, 3]
其他实用方法
asList方法
注意:返回的列表大小是固定的,不支持 add
或 addAll
操作。
java
List<Integer> list = Arrays.asList(1, 2, 3);
System.out.println(list); // 输出 [1, 2, 3]
// 以下操作会抛出 UnsupportedOperationException
// list.add(4); // 不支持
hashCode方法
通常不需要直接调用此方法,但在某些自定义对象需要重写 hashCode
方法时,可能会作为参考。
java
int[] array = {1, 2, 3};
int hashCode = Arrays.hashCode(array);
System.out.println(hashCode); // 输出数组内容的哈希码
setAll方法
该方法用于通过给定的生成器函数为数组的每个索引生成新的值。
java
int[] array = new int[5];
Arrays.setAll(array, i -> i * 2); // 使用 lambda 表达式为每个索引生成值
System.out.println(Arrays.toString(array)); // 输出 [0, 2, 4, 6, 8]