Arrays类
431字约1分钟
2025-09-23
提示
需要导包:
import java.util.Arrays;
import java.util.Comparator;
显示数组
// 显示数组
Integer[] arr = {1, 5, 10};
System.out.println(Arrays.toString(arr)); // [1, 5, 10]
排序(sort)
// 数组排序
Integer[] arr1 = {1, 5, 3, 7, 2};
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1)); // [1, 2, 3, 5, 7]
// 数组自定义排序
Integer[] arr2 = {1, 5, 3, 7, 2};
Arrays.sort(arr2, new Comparator() {
@Override
// Object o1, Object o2表示的是数组中的元素
// Object o1 表示前一个元素
// Object o2 表示后一个元素
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i2 - i1;
}
});
System.out.println(Arrays.toString(arr2)); // [7, 5, 3, 2, 1]
自定义排序:Arrays.sort()
对对象数组排序时,会依赖元素自身的 Comparable
接口(自然排序),或外部传入的 Comparator
接口(定制排序)。这两种接口的核心是 compare
方法,其返回值决定了元素的排序顺序:
- 返回负数:表示第一个元素应排在第二个元素前面(不互换位置)。
- 返回正数:表示第一个元素应排在第二个元素后面(需要互换位置)。
- 返回0:表示两个元素相等,位置不变。
二分查找(binarySearch)
要求:数组必须排好序(正序)
返回查找数的下标值
如果查不到查找数,则返回 -1
int[] arr3 = {1, 2, 4, 5, 6};
int a = Arrays.binarySearch(arr3, 2);
System.out.println(a); // 1
拷贝(copyOf)
// 拷贝
Integer[] arr4 = {2, 6, 3, 5, 9};
Integer[] b = Arrays.copyOf(arr4, arr4.length);
System.out.println(Arrays.toString(b)); // [2, 6, 3, 5, 9]
替换(fill)
// 替换
Integer[] arr5 = {2, 3, 4};
Arrays.fill(arr5, 6);
System.out.println(Arrays.toString(arr5)); // [6, 6, 6]
判断两个数组是否相同
// 判断两个数组是否相同
int[] arr6 = {1, 2, 3};
int[] arr7 = {1, 3, 2};
System.out.println(Arrays.equals(arr6, arr7)); // false