Arrays 工具类
java.util.Arrays 提供数组操作的常用方法。
常用方法一览
| 方法 | 说明 |
|---|---|
| toString() | 转字符串 |
| sort() | 排序 |
| binarySearch() | 二分查找 |
| equals() | 比较 |
| deepEquals() | 多维数组比较 |
| fill() | 填充 |
| copyOf() | 复制 |
| copyOfRange() | 范围复制 |
| asList() | 数组转列表 |
排序和查找
java
import java.util.Arrays;
public class ArraysSortDemo {
public static void main(String[] args) {
int[] arr = {3, 1, 4, 1, 5, 9, 2, 6};
// 排序
Arrays.sort(arr);
System.out.println("排序后: " + Arrays.toString(arr));
// 二分查找(必须先排序)
int index = Arrays.binarySearch(arr, 5);
System.out.println("5 的索引: " + index);
}
}填充和复制
java
import java.util.Arrays;
public class ArraysFillCopyDemo {
public static void main(String[] args) {
// 填充
int[] arr1 = new int[5];
Arrays.fill(arr1, 100);
System.out.println("填充后: " + Arrays.toString(arr1));
// 复制(可扩容)
int[] arr2 = Arrays.copyOf(arr1, 10);
System.out.println("复制后: " + Arrays.toString(arr2));
// 指定范围复制
int[] arr3 = {1, 2, 3, 4, 5};
int[] arr4 = Arrays.copyOfRange(arr3, 1, 4);
System.out.println("范围复制: " + Arrays.toString(arr4));
}
}数组比较
java
import java.util.Arrays;
public class ArraysEqualsDemo {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
int[] c = {1, 2, 4};
System.out.println("a == b: " + Arrays.equals(a, b)); // true
System.out.println("a == c: " + Arrays.equals(a, c)); // false
// 多维数组比较用 deepEquals
int[][] d = {{1, 2}, {3, 4}};
int[][] e = {{1, 2}, {3, 4}};
System.out.println("多维相等: " + Arrays.deepEquals(d, e));
}
}数组转列表
java
import java.util.Arrays;
import java.util.List;
public class AsListDemo {
public static void main(String[] args) {
String[] names = {"Tom", "Jerry", "Mike"};
// 数组转列表(返回固定长度列表)
List<String> list = Arrays.asList(names);
// 注意:这个列表长度固定,不支持 add/remove
// list.add("John"); // UnsupportedOperationException
}
}注意事项
binarySearch使用前必须先排序- 多维数组比较用
deepEquals,不能用equals asList返回的列表长度固定,不支持 add/remove 操作
