在Java标准库中,java.util.Arrays类封装了大量用于操作数组的静态方法。无论是基本类型数组还是对象数组,都能通过Arrays类完成排序、检索、拷贝、填充和比较等常见任务,从而避免重复编写底层循环逻辑。

Arrays类常用核心方法概览
下表列出了Arrays类中最常被使用的几个方法及其主要作用:
| 方法名 | 功能说明 | 适用类型 |
|---|---|---|
| sort() | 对数组进行升序排序 | 所有基本类型及对象数组 |
| binarySearch() | 在已排序数组中二分查找元素 | 所有基本类型及对象数组 |
| copyOf() | 复制数组并指定新长度 | 所有基本类型及对象数组 |
| equals() | 判断两个数组内容是否相等 | 所有基本类型及对象数组 |
| fill() | 用指定值填充整个数组 | 所有基本类型及对象数组 |
排序与查找
使用sort方法可以对数组原地排序,而binarySearch必须在已排序的数组上调用,否则结果不确定。
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int[] nums = {5, 2, 9, 1, 3};
// 对数组进行升序排序
Arrays.sort(nums);
// 排序后二分查找元素9的索引
int index = Arrays.binarySearch(nums, 9);
System.out.println("排序结果:" + Arrays.toString(nums));
System.out.println("元素9的索引:" + index);
}
}
数组复制与比较
copyOf方法可以方便地扩容或截断数组,equals方法则按元素顺序逐个比较,而不是比较引用地址。
import java.util.Arrays;
public class CopyCompareDemo {
public static void main(String[] args) {
int[] original = {1, 2, 3};
// 复制为长度为5的新数组,多余位置填0
int[] enlarged = Arrays.copyOf(original, 5);
// 内容比较而非引用比较
boolean same = Arrays.equals(original, new int[]{1, 2, 3});
System.out.println("复制后数组:" + Arrays.toString(enlarged));
System.out.println("内容是否相等:" + same);
}
}
填充与批量赋值
当需要将数组所有元素初始化为同一数值时,fill方法比手写for循环更直观。
import java.util.Arrays;
public class FillDemo {
public static void main(String[] args) {
int[] buffer = new int[4];
// 用7填充整个数组
Arrays.fill(buffer, 7);
System.out.println("填充后:" + Arrays.toString(buffer));
}
}
使用注意事项
- binarySearch仅适用于已排序数组,未排序时返回结果无意义。
- 对象数组排序要求元素实现Comparable接口,或传入Comparator。
- Arrays.toString()便于打印数组内容,调试时非常实用。
合理运用Arrays类的静态方法,可以显著降低数组操作的代码量,同时减少因手写循环引入的边界错误。