为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这样重写compare方法,返回的结果不对呢

为什么我这样重写compare方法,返回的结果不对呢

慕粉18817939419 2016-07-29 22:31:22
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不同,则按照ID排序,如果ID相同,则按照name排序,可是输出结果当中,ID相同的话,name不是顺序排列啊!为什么?
查看完整描述

1 回答

?
慕粉18817939419

TA贡献1条经验 获得超1个赞

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

查看完整回答
1 反对 回复 2016-07-29
  • Yexiaomo
    Yexiaomo
    问一下:这个重写的方法是不是实现Comparable接口之后自己定义的比较方法-->(章节来自于TreeSet集合) 我想知道, 这个自己写的方法, 在添加元素时, 是怎样调用的这个方法, 不是按顺序该是调用 compareTo()方法吗?刚看到这一节, 有点不明白
  • 慕粉18817939419
    慕粉18817939419
    http://www.imooc.com/video/4314 我看的是java当中的集合介绍,这节还有下一节有对这个函数的说明,还有使用,你看看是不是你要问的问题,我这个是自定义的临时比较规则。
  • Yexiaomo
    Yexiaomo
    啊哈! 刚刚看了看API,发现我刚才走进了误区,才走出来, 现在知道了。。。视频刚才也去看了,又加深了一下印象,谢谢你啦啦~~
  • 1 回答
  • 0 关注
  • 1694 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信