public class Test10{ public static void main(String[] args){
int[] i = new int[]{3,5,2,1};
porkerSort(i);
public static void porkerSort(int[] i){//要自定义一个比较器Comparator
Arrays.sort(i,new Sort());
System.out.println("扑克排序结果为:"+Arrays.toString(i));
}class Sort implements Comparator<Integer>{
public int compare(Integer t1,Integer t2){
if(t1>=3 && t2<3){
return -1;
}
else if(t1<3 && t2>=3){
return 1;
}
else if(t1<3 && t2<3){
if(t1>t2)
return 1;
else if(t1<t2)
return -1;
else
return 0;
}
else{
if(t1>t2)
return 1;
else if(t1<t2)
return -1;
else
return 0;
}
}
}程序运行出现错误,说是这条语句Arrays.sort(i,new Sort());调用有误,那是如何来调用sort()的指定比较器的呀??帮忙看一下啦!!!
sort(T[] a, Comparator<? super T> c)
根据指定比较器产生的顺序对指定对象数组进行排序。 注意T[] 只能为对象
即,基本数据类型int[]是不会被看作对象而调用compare方法参数改为Integer[] 即可
import java.util.*;
public class Test4_2{ public static void main(String[] args){
Integer[] i=new Integer[4];
i[0]=new Integer(3);
i[1]=new Integer(5);
i[2]=new Integer(2);
i[3]=new Integer(1);
porkerSort(i);
}
public static void porkerSort(Integer[] i){//要自定义一个比较器Comparator
Arrays.sort(i,new Sort());
System.out.println("扑克排序结果为:"+Arrays.toString(i));
}
}class Sort implements Comparator<Integer>{
public int compare(Integer t1,Integer t2){
if(t1>=3 && t2<3){
return -1;
}
else if(t1<3 && t2>=3){
return 1;
}
else if(t1<3 && t2<3){
if(t1>t2)
return 1;
else if(t1<t2)
return -1;
else
return 0;
}
else{
if(t1>t2)
return 1;
else if(t1<t2)
return -1;
else
return 0;
}
}
}/code]
这是代码 改过的 你看看还有什么问题...