
java compareTo()方法实现后仍无效
定义了Node类,存进list中(node的只有两个变量:区间的左右端点l,r)现在用Collections.sort(list);并实现compareTo()方法,为什...
定义了Node类,存进list中(node的只有两个变量:区间的左右端点l,r)现在用Collections.sort(list);并实现compareTo()方法,为什么并没有排序效果?要实现的排序效果是:按照区间右端点升序排列。打印排序前后变化及重写的compareTo()方法还有打印截图如下图:(打印区间中出现的1,0是为了表示判断语句没出错)拜托啦各位好汉,本来是要做区间选点问题的结果连排序都没做好。。。。。
展开
2个回答
展开全部
当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函数调用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询