Java 排序阵列 - 如何用Arrays.sort()将数组按升序或降序反转

380 阅读3分钟

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

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

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

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

如何在Java中使用升序排序数组?Arrays.sort()

在本节中,我们将看到一个例子,说明我们如何使用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);

注意,在使用点符号访问sort() 方法之前,我们先写了Arrays 类。

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

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

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

为了对数组进行降序排序,我们使用reverseOrder() ,我们可以从Collections 类中访问。

我们仍将使用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,
        }
    }
}

首先,我们导入了数组和集合类,因为我们将使用这些类所提供的方法。

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

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

第一个参数是数组arr ,它将被按升序排序。第二个参数--Collections.reverseOrder() --将颠倒排序后的数组的顺序,所以它是按降序排列的。

当循环浏览并打印时,该数组将看起来像这样:10, 8, 5, 2, 1

总结

在这篇文章中,我们谈到了在Java中对数组的排序。数组可以按升序或降序进行排序。

我们可以使用sort() 方法对数组进行升序排序,该方法可以通过Arrays 类访问。sort() 方法将被排序的数组作为一个参数输入。

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

编码愉快!