使用Comparator在Java中按降序对int数组进行排序

时间:2017-03-05 21:26:31

标签: java collections comparator comparable

我在考虑使用比较器按降序对int[] array进行排序。

我尝试如下,但是,我得到一个错误,主要是因为比较器用于诸如Integer之类的对象,而不是诸如int []之类的数据类型。是否可以按降序对int []数组进行排序而不将其转换为整数数组?

Arrays.sort(a, new Comparator<int>() {

            @Override
            public int compare( int a, int b)
            {
                return b-a;
            }
        });

基于安迪特纳的回应。

public class ArraySortDesendingOrder {
    public static void main(String[] args) {
//        int[] a = {1,2,3,4,5,6};
        int[] a = {1,2,3,4,5};

        ArraySortDesendingOrder obj = new ArraySortDesendingOrder();

        obj.print(a);
        obj.sortInDescnedingOrder(a);
        obj.print(a);
    }

    public void sortInDescnedingOrder( int[] a)
    {
        Arrays.sort(a);

        for(int i = 0;i<a.length/2;i++)
        {
            swap(a, i, a.length-1-i);
        }
    }

    public void swap(int[] a, int i, int j)
    {
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
    }

    public void print(int[] a)
    {
        for(int i = 0;i<a.length;i++)
            System.out.print(a[i] + " ");
        System.out.println("");
    }
}

0 个答案:

没有答案
相关问题