在 Java 中,数组本身自带的属性和方法非常少(最常用的是通过 .length 获取数组长度)。我们在实际开发中常说的“数组方法”,通常是指 Java 官方提供的数组工具类 java.util.Arrays。
这个工具类包含了许多高效的静态方法,专门用来处理数组的排序、查找、复制等操作。以下是 Arrays 类中最常用的方法:
🔍 1. 数组转字符串:Arrays.toString(数组)
直接打印数组变量会输出一串内存地址,使用该方法可以将数组转换为易读的字符串格式(如 [1, 2, 3]),在调试时非常有用。
int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3]
注:如果是多维数组,建议使用 Arrays.deepToString(数组)。
📊 2. 数组排序:Arrays.sort(数组)
对数组进行升序排序。底层使用了高效的排序算法(如双轴快速排序),比手写冒泡排序等要快得多。
int[] arr = {5, 3, 1};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); // 输出:[1, 3, 5]
🔎 3. 二分查找:Arrays.binarySearch(数组, 目标值)
在数组中查找指定元素的下标(索引)。 ⚠️ 核心注意:使用此方法前,数组必须先排好序,否则查找结果不可预测。
int[] arr = {1, 3, 5, 7};
int index = Arrays.binarySearch(arr, 5); // 返回 2
📋 4. 数组拷贝:Arrays.copyOf(原数组, 新长度)
将原数组拷贝成一个新的数组。由于 Java 数组长度固定不可变,这个方法常用于数组扩容。
- 如果新长度 > 原长度:新数组多出的部分会用默认值填充(如 int 类型为 0)。
- 如果新长度 < 原长度:会对原数组进行截取。
int[] arr = {1, 2, 3};
int[] newArr = Arrays.copyOf(arr, 5);
System.out.println(Arrays.toString(newArr)); // 输出:[1, 2, 3, 0, 0]
补充:如果想拷贝数组的某一部分,可以使用 Arrays.copyOfRange(原数组, 开始索引, 结束索引)(含头不含尾)。
📝 5. 数组填充:Arrays.fill(数组, 值)
将数组中的所有元素替换为指定的值。
int[] arr = new int[4];
Arrays.fill(arr, 10);
System.out.println(Arrays.toString(arr)); // 输出:[10, 10, 10, 10]
⚖️ 6. 数组比较:Arrays.equals(数组1, 数组2)
判断两个数组的内容是否完全相等(要求长度相同,且对应位置的元素也相同)。
int[] a1 = {1, 2, 3};
int[] a2 = {1, 2, 3};
System.out.println(Arrays.equals(a1, a2)); // 输出:true
📌 常用方法速查表
| Arrays.toString() | 打印/查看数组内容 | 调试代码必备 |
| Arrays.sort() | 对数组进行升序排序 | 开发中最常用的排序方式 |
| Arrays.binarySearch() | 查找元素的下标 | 必须先对数组排序 |
| Arrays.copyOf() | 拷贝或扩容数组 | 会返回一个全新的数组 |
| Arrays.fill() | 批量给数组赋值 | 可快速初始化数组 |
| Arrays.equals() | 比较两个数组内容 | 不要用 == 比较数组内容 |
掌握以上这几个方法,基本就能覆盖日常开发中 80% 以上的数组处理场景。




