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()的指定比较器的呀??帮忙看一下啦!!!

解决方案 »

  1.   

    static <T> void 
     sort(T[] a, Comparator<? super T> c) 
              根据指定比较器产生的顺序对指定对象数组进行排序。 注意T[] 只能为对象
    即,基本数据类型int[]是不会被看作对象而调用compare方法参数改为Integer[] 即可
      

  2.   

    [code=Java][//
    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]
    这是代码 改过的 你看看还有什么问题...