java compareTo()方法实现后仍无效

定义了Node类,存进list中(node的只有两个变量:区间的左右端点l,r)现在用Collections.sort(list);并实现compareTo()方法,为什... 定义了Node类,存进list中(node的只有两个变量:区间的左右端点l,r)现在用Collections.sort(list);并实现compareTo()方法,为什么并没有排序效果?要实现的排序效果是:按照区间右端点升序排列。打印排序前后变化及重写的compareTo()方法还有打印截图如下图:(打印区间中出现的1,0是为了表示判断语句没出错)拜托啦各位好汉,本来是要做区间选点问题的结果连排序都没做好。。。。。 展开
 我来答
GTA小鸡
高粉答主

2018-05-11 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.4亿
展开全部
当this.r>another.r时应该返回一个大于0的数,this.r==another.r时返回0,this.r<another.r时返回一个小于0的数。
更多追问追答
追问
试了是可以哒!!😄
请问是C和Java这方面是不一样的吗?C的话像之前那样写是可以的
追答
C语言里没有comparable接口,没有类,也没有封装好的sort函数。只有C++ STL中才有。C++ STL中的sort函数可以提供一个自定义的comp函数作为第三个参数,用该函数进行比较。comp应该返回bool型。以升序为例,当要比较的两者前者大于后者时返回true,否则返回false。也可以直接重载operator<使得当前类可以被sort函数调用。
此时秋风凉
2018-05-11 · 超过104用户采纳过TA的回答
知道小有建树答主
回答量:158
采纳率:78%
帮助的人:82.6万
展开全部
你的compareTo没有Override注解?那能生效吗?
在compareTo()上面加上@Override试试看,这样调用Comparable接口的compareTo()方法才能落实到你的实现类上
追问
试过了,是不可以的😭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式