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 list = Arrays.asList(data);

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 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]