我正在使用数组的排序功能,它向我显示错误,例如无效。帮帮我
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);
}
});
}
}
答案 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)));