在比较器的帮助下对int类型的数组进行排序

时间:2019-05-18 14:38:15

标签: java

我正在使用数组的排序功能,它向我显示错误,例如无效。帮帮我

import java.util.*;

class power
{
    public static void main(String ar[])
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int[n];
        for(int i=0;i<n;i++)
            a[i]=sc.nextInt();
        Arrays.sort(a,new Comparator<int []>()
        {
            public int compare(int a1[],int a2[])
            {
                String s1=""+a1[0];
                String s2=""+a2[0];
                return s1.compareTo(s2);
            }
        });
    }
}

1 个答案:

答案 0 :(得分:2)

您不能编写Comparator<int>,因为Java原语类型不能用作泛型。您将需要Integer包装类型。所以改变

int a[] = new int[n];

Integer a[] = new Integer[n];

然后您的比较器应该比较两个Integer(而不是两个int[](s))。喜欢

Arrays.sort(a, new Comparator<Integer>() {
    public int compare(Integer a1, Integer a2) {
        String s1 = "" + a1;
        String s2 = "" + a2;
        return s1.compareTo(s2);
    }
});

或者只是

Arrays.sort(a, (x, y) -> String.valueOf(x).compareTo(String.valueOf(y)));