DL1997 2017-04-20 04:23 采纳率: 33.3%
浏览 787
已采纳

无报错,但是为什么排序没对??不应该是【abcd,abc,def,a】吗。。

public class StringCmp implements Comparator{
public int compare(String e1,String e2){
int len1 = e1.length();
int len2 = e2.length();

    return len1-len2;
}

}

public static void sort(Object[] arr,Comparator cmp){
boolean sorted = true;//假定有序

    for(int i=0;i<arr.length-1;i++ ){

        for(int j=i+1;j<arr.length/*减少次数*/-i-1;j++){

            if(cmp.compare(arr[i], arr[i+1])<0){
                Object temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
                sorted = false;
            }
        }
        if(sorted){ //假定成功跳出,减少趟数
            break;
        }
    }
    //System.out.println(Arrays.toString(arr));
}

public class DemoString {
public static void main(String args[]){
    //按照长度进行比较
    String   arr = new String[]{"a","abcd","abc","def"};
    util.sort(arr, new StringCmp());
    System.out.println(Arrays.toString(arr));

}

}
输出
[abcd, a, abc, def]

  • 写回答

4条回答

  • hongyu83916 2017-04-20 05:01
    关注

    实现了 Comparator ,是要重写compare方法。可是你的重写标记怎么没呢?比较器

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!