问答详情
源自:6-8 学生选课--- 实现学生序列排序

为什么我想通过compare方法实现比较2个属性来排序的方法不对呢

public int compare(Student o1, Student o2) {

// TODO Auto-generated method stub

if(o1.id!=o2.id)

return o1.id.compareTo(o2.id);

return o1.name.compareTo(o2.name);


}

想要按照ID排序,如果ID相同则按照name排序,但是结果当中ID相同的部分,name却不是顺序排列的

提问者:慕粉18817939419 2016-07-29 22:33

个回答

  • 大唐雨夜
    2016-11-06 17:26:55

    视频中用到了两种compareTo方法,一种是String方法的compareTo方法(课程中的id是String类型的!),另一种就是接口comparable中必须要实现的compareTo方法。单用compareTo方法比较int类型的id不好使

  • 慕粉18817939419
    2016-07-29 22:42:42

    好吧,自己找到错误了,id定义的是String属性,不能通过=来比较,改成equals就好了