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

来源:6-8 学生选课--- 实现学生序列排序

慕粉18817939419

2016-07-29 22:33

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却不是顺序排列的

写回答 关注

2回答

  • 大唐雨夜
    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就好了

    慕粉3723...

    还要注意一点,判断符是==双等号(虽然这里不是用这个)

    2016-08-03 16:40:30

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题