Java sort()数组排序降序详解

TK 2020-09-22 10:28:10 java常见问答 5696

之前给大家带来过Java sort()数组排序升序的相关内容,那么下面的文章要继续给大家讲到的就是Java sort()数组排序降序方面的知识,一起来了解一下吧。

在Java语言当中,使用sort实现降序有以下两种方法:

1、利用Collections.reverseOrder()方法(对此大家可以去了解一下Java Collections类)。

public static void main(String[] args)
{
    Integer[] a = {
        9
        , 8
        , 7
        , 2
        , 3
        , 4
        , 1
        , 0
        , 6
        , 5
    }; // 数组类型为Integer
    Arrays.sort(a, Collections.reverseOrder());
    for (int arr: a)
    {
        System.out.print(arr + " ");
    }
}

输出结果:

9 8 7 6 5 4 3 2 1 0

2、实现Comparator接口的复写compare()方法:

public class Test
{
    public static void main(String[] args)
    {
        /*
         * 注意,要想改变默认的排列顺序,不能使用基本类型(int,double,char)而要使用它们对应的类
         */
        Integer[] a = {
            9
            , 8
            , 7
            , 2
            , 3
            , 4
            , 1
            , 0
            , 6
            , 5
        };
        // 定义一个自定义类MyComparator的对象
        Comparator cmp = new MyComparator();
        Arrays.sort(a, cmp);
        for (int arr: a)
        {
            System.out.print(arr + " ");
        }
    }
}
// 实现Comparator接口
class MyComparator implements Comparator < Integer >
{
    @Override
    public int compare(Integer o1, Integer o2)
    {
        /*
         * 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了
         */
        return o2 - o1;
    }
}

输出结果:

9 8 7 6 5 4 3 2 1 0

这里的话要注意一下了,使用上面的两种方法的时候,数组必须是包装类型,不然的话编译不通过。

以上就是关于Java sort()数组排序降序的相关知识介绍了,希望可以对你有帮助,更多数组java入门知识,请继续关注奇Q工具网来进行了解吧。

推荐阅读:

Java sort()数组排序升序详解

java如何使用arraycopy()方法对数组进行复制?

java如何使用使用clone()方法对数组进行复制?