Java 数组排序——如何使用 Arrays.sort() 升序或降序排列数组

在 Java 中,你使用数组将一组变量(具有相同数据类型)存储在单个变量中。

在许多情况下,存储在数组中的值以随机顺序出现。使用 Java 中的 Arrays 类,你可以访问可用于操作数组的各种方法。

我们将从 Arrays 类中使用的方法之一是 sort() 方法,它按升序对数组进行排序。

我们还将看到如何使用 Java 中 Collections 类的 reverseOrder() 方法对数组进行降序排序。

如何使用 Arrays.sort() 在 Java 中按升序对数组进行排序

在本节中,我们将看到一个示例,说明如何使用 sort() 方法对数组进行升序排序。

import java.util.Arrays;

class ArraySort {
    public static void main(String[] args) {
        int[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr);
        
        for (int values : arr) {
            System.out.print(values + ", ");
            // 1, 2, 5, 8, 10,
        }
    }
}

我们在上面的示例中做的第一件事是导入 Arrays 类:import java.util.Arrays;。这使我们可以访问 Arrays 类的所有方法。

然后我们以随机顺序创建了一个包含数字的数组:int[] arr = { 5, 2, 1, 8, 10 };

为了按升序对该数组进行排序,我们将数组作为参数传递给 sort() 方法:Arrays.sort(arr);

请注意,Arrays 类是在使用点符号访问 sort() 方法之前首先编写的。

最后,我们在控制台中循环并打印了数组。结果是一个排序数组:1, 2, 5, 8, 10

在下一节中,我们将讨论按降序对数组进行排序。

如何在 Java 中使用 Collections.reverseOrder() 对数组进行降序排序

要按降序对数组进行排序,我们使用可以从 Collections 类访问的 reverseOrder()

我们仍将使用 Arrays.sort();,但在此示例中,它将接受两个参数——要排序的数组和 Collections.reverseOrder()

这是一个例子:

import java.util.Arrays;
import java.util.Collections;

class ArraySort {
    public static void main(String[] args) {
        Integer[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr, Collections.reverseOrder());
        
        for (int values : arr) {
            System.out.print(values + ", ");
            // 10, 8, 5, 2, 1,
        }
    }
}

首先,我们导入了 Arrays 和 Collections 类,因为我们将使用这些类提供的方法。

然后我们以随机顺序创建了一个数字数组:Integer[] arr = { 5, 2, 1, 8, 10 };。你会注意到我们使用 Integer[] 而不是 int[],就像我们在上一个例子中所做的那样——后者会抛出一个错误。

要按降序对数组进行排序,我们这样做:Arrays.sort(arr, Collections.reverseOrder());

第一个参数是数组 arr ,它将按升序排序。第二个参数 – Collections.reverseOrder() – 然后将反转排序数组的顺序,使其按降序排列。

循环并打印时,数组将如下所示:10, 8, 5, 2, 1

总结

在本文中,我们讨论了 Java 中的排序数组。数组可以按升序或降序排序。

我们可以使用可以从 Arrays 类的 sort() 方法对数组进行升序排序。sort() 方法接受要排序的数组作为参数。

要按降序对数组进行排序,我们使用了 Collections 类的 reverseOrder() 方法。这作为 sort() 方法中的第二个参数传入,以便可以按降序重新排列排序后的数组。