在Java中如何使用Arrays工具类操作数组

Arrays工具类提供静态方法简化数组操作。1. sort()对数组升序排序,支持基本类型和对象数组,可自定义Comparator;2. binarySearch()在已排序数组中查找元素索引,未排序则结果不可预测;3. equals()比较两数组是否相等,多维数组用deepEquals();4. fill()将数组元素设为指定值,支持范围填充;5. toString()将数组转为可读字符串,二维数组用deepToString();6. copyOf()复制并可调整长度,copyOfRange()复制指定范围。这些方法提升数组处理效率。

Java中的Arrays工具类提供了多种静态方法来简化数组的操作,比如排序、查找、比较、填充和转换等。这个类位于java.util.Arrays包中,使用时无需创建实例,直接通过类名调用即可。

1. 数组排序:sort()

使用Arrays.sort()可以对数组进行升序排序,支持基本类型数组和对象数组。

  • 对整型数组排序:
int[] nums = {5, 2, 8, 1};
Arrays.sort(nums);
// 结果:[1, 2, 5, 8]
  • 对字符串数组按字典顺序排序:
String[] words = {"banana", "apple", "cherry"};
Arrays.sort(words);
// 结果:["apple", "banana", "cherry"]

如果需要自定义排序规则,可传入Comparator,例如对字符串按长度排序:

Arrays.sort(words, (a, b) -> a.length() - b.length());

2. 数组查找:binarySearch()

使用Arrays.binarySearch()可以在已排序的数组中快速查找元素的索引。注意:必须先排序,否则结果不可预测。

int[] sortedNums = {1, 3, 5, 7, 9};
int index = Arrays.binarySearch(sortedNums, 5);
// 返回:2

若查找值不存在,返回负值(表示插入点)。

3. 数组比较:equals()

使用Arrays.equals()判断两个数组是否相等(长度相同且每个元素都相等)。

int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
boolean isEqual = Arrays.equals(a, b); // true

对于多维数组,使用Arrays.deepEquals()进行深度比较。

4. 数组填充:fill()

使用Arrays.fill()将数组的所有元素设置为指定值。

int[] arr = new int[5];
Arrays.fill(arr, 7);
// 结果:[7, 7, 7, 7, 7]

也可以只填充部分范围:Arrays.fill(arr, fromIndex, toIndex, value)

5. 数组转字符串:toString()

直接打印数组会输出内存地址,使用Arrays.toString()可获得可读格式。

int[] nums = {1, 2, 3};
System.out.println(Arrays.toString(nums));
// 输出:[1, 2, 3]

对于二维数组,使用Arrays.deepToString()

6. 数组复制:copyOf() 和 copyOfRange()

Arrays.copyOf()复制整个数组,可指定新长度(扩容或截断)。

int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, 5);
// 结果:[1, 2, 3, 0, 0]

copyOfRange()复制指定范围:

int[] part = Arrays.copyOfRange(original, 1, 3);
// 结果:[2, 3]

基本上就这些。Arrays工具类让数组操作变得简单高效,合理使用能显著减少手动编码的工作量。