Java Arrays类
2025-08-20 09:37:53 | 世界杯足球队 | admin | 2747°c
Java Arrays 类
定义:
Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。
Arrays 类的常用方法
Arrays.asList(T… data)
注意:该方法返回的是 Arrays 内部静态类 ArrayList,而不是我们平常使用的 ArrayList,,该静态类 ArrayList 没有覆盖父类的 add(), remove() 等方法,所以如果直接调用,会报 UnsupportedOperationException 异常
Integer[] data = {1, 2, 3,4,5};
List
for (Integer integer : list) {
System.out.print(integer+"\t");
}
//1 2 3 4 5
Arrays.fill(Object[] array, Object obj)
Integer[] data = {1, 2, 3, 4, 5};
Arrays.fill(data, 9);
System.out.println(Arrays.toString(data));
//[9, 9, 9, 9, 9]
Arrays.sort(Object[] array)
String[] data = {"1", "4", "3", "2"};
System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
Arrays.sort(data);
System.out.println(Arrays.toString(data)); // [1, 2, 3, 4]
Arrays.sort(T[] array, Comparator super T> comparator)
使用自定义比较器,对数组元素进行排序 (串行排序)
String[] data = {"1", "4", "3", "2"};
System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
// 实现降序排序,返回-1放左边,1放右边,0保持不变
Arrays.sort(data, (str1, str2) -> {
if (str1.compareTo(str2) > 0) {
return -1;
} else {
return 1;
}
});
System.out.println(Arrays.toString(data)); // [4, 3, 2, 1]
Arrays.binarySearch(Object[] array, Object key)
注意:在调用该方法之前,必须先调用 Arrays.sort() 方法进行排序,如果数组没有排序,那么结果是不确定的,此外如果数组中包含多个指定元素,则无法保证将找到哪个元素
当搜索元素是数组元素时,返回该元素的索引值
当搜索元素不是数组元素时,返回 - (索引值 + 1)
举例:
搜索元素是数组元素,返回该元素索引值
Integer[] data = {1, 3, 5, 7};
Arrays.sort(data);
System.out.println(Arrays.binarySearch(data, 1)); // 0
搜索元素不是数组元素,且小于数组中的最小值
Integer[] data = {1, 3, 5, 7};
Arrays.sort(data);
// 此时程序会把数组看作 {0, 1, 3, 5, 7},此时0的索引值为0,则搜索0时返回 -(0 + 1) = -1
System.out.println(Arrays.binarySearch(data, 0)); // -1
Arrays.equals(Object[] array1, Object[] array2)
判断两个数组是否相等
数组元素为基本数据类型时,依次比较值
数组元素为引用数据类型时,依次调用元素的 equals() 方法进行比较
即如果两个数组被认为是相等的,则两个数组中应包含相同顺序的相同元素
Integer[] data1 = {1, 2, 3};
Integer[] data2 = {1, 2, 3};
System.out.println(Arrays.equals(data1, data2)); // true
Arrays.toString(Object[] array)
返回数组元素的字符串形式
Integer[] data = {1, 2, 3};
System.out.println(Arrays.toString(data)); // [1, 2, 3]