欢迎访问宙启技术站
智能推送

数组处理和排序函数 - Arrays类中的常用函数

发布时间:2023-06-24 19:02:40

Java中提供了Arrays类来帮助我们对数组进行处理和排序,这个类中包含了很多常用的函数,下面我们来介绍一些常用的函数。

1. sort()函数

这个函数可以对数组进行排序,它默认按照升序进行排序。如果想要按照降序进行排序,则需要先将数组按照升序排序,再使用reverse()函数将数组反转。下面是sort()函数的示例代码:

int[] arr = {5, 3, 2, 8, 7};
Arrays.sort(arr);    // 升序排序
System.out.println(Arrays.toString(arr));    // 输出 [2, 3, 5, 7, 8]

2. binarySearch()函数

这个函数可以在已排序的数组中查找指定的元素。如果找到了该元素,则返回其所在的位置,否则返回负数。下面是binarySearch()函数的示例代码:

int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 4);    // 在数组中查找元素4
System.out.println(index);    // 输出 3

3. fill()函数

这个函数可以填充一个数组,将数组中的所有元素都设置为指定的值。下面是fill()函数的示例代码:

int[] arr = new int[5];
Arrays.fill(arr, 7);    // 将数组填充为7
System.out.println(Arrays.toString(arr));    // 输出 [7, 7, 7, 7, 7]

4. equals()函数

这个函数可以用来判断两个数组是否相等,即两个数组中的元素是否一一对应相等。下面是equals()函数的示例代码:

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 3, 2};
boolean isEqual = Arrays.equals(arr1, arr2);    // 判断arr1和arr2是否相等
System.out.println(isEqual);    // 输出 false

5. copyOf()函数

这个函数可以用来复制一个数组,并且可以指定复制的长度。如果复制的长度大于原数组的长度,则会自动在新数组的后面填充一些默认值(int类型默认为0,boolean类型默认为false等)。下面是copyOf()函数的示例代码:

int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr1, 5);    // 复制arr1数组,并指定复制的长度为5
System.out.println(Arrays.toString(arr2));    // 输出 [1, 2, 3, 0, 0]

6. toString()函数

这个函数可以将一个数组转换为字符串形式,方便我们输出数组的内容。下面是toString()函数的示例代码:

int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr));    // 输出 [1, 2, 3]

7. asList()函数

这个函数可以将一个数组转换为List集合,方便我们对数组使用一些List集合中的函数。但是需要注意的是,如果直接使用asList()函数来创建List集合,然后再对这个List集合进行操作,可能会出现UnsupportedOperationException异常,因为由asList()函数创建的List集合是固定长度的,不能对其进行修改。如果想要对其进行修改,可以使用Arrays.asList()来创建一个新的List集合,然后再操作这个新的List集合。下面是asList()函数的示例代码:

int[] arr = {1, 2, 3};
List<int[]> list1 = Arrays.asList(arr);    // 直接使用asList()函数来创建List集合
System.out.println(list1.size());    // 输出 1,因为list1只包含了一个整型数组

List<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3));    // 使用Arrays.asList()创建新的List集合
System.out.println(list2.size());    // 输出 3,因为list2包含了三个整数

除了上面介绍的这些函数以外,Arrays类中还有很多其他常用的函数,比如:hashCode()函数、deepToString()函数、parallelSort()函数等等,这里就不一一介绍了。总之,Arrays类在处理和排序数组时非常方便实用,值得我们熟练掌握和使用。