关于CompareTO的问题

关于CompareTO的问题

默认CompareTo不重写返回值是-1,是默认升序还是降序。。。用处大致明白了,引用接口comparable,重写compareTo方法,可是升序降序的问题感觉记起来很复杂,请问助教有好的记忆方式么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
irista23 2017-05-22 18:44:50
public class Student implements Comparable<Student> {
private String name;
private int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "student name:" + this.name + " age:" + age;
}
//重写compareTo,实现降序
public int compareTo(Student stu) {
int value = stu.age - this.age;
return value;
}
}
List<Student> lstStu=new ArrayList<Student>();
Student stu1=new Student("Lucy",13);
Student stu2=new Student("Mike",16);
Student stu3=new Student("Ben",10);
lstStu.add(stu1);
lstStu.add(stu2);
lstStu.add(stu3);
//排序前
for(Student stu:lstStu){
System.out.println(stu.toString());
}
//排序后
Collections.sort(lstStu);
for(Student stu:lstStu){
System.out.println(stu.toString());
}
输出结果:
student name:Lucy age:13
student name:Mike age:16
student name:Ben age:10
student name:Mike age:16
student name:Lucy age:13
student name:Ben age:10


irista23 2017-05-22 16:44:48

你可以这样记:前者大于后者,返回>0(降序),等于返回0,小于返回<0(升序)。

如果解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 ahak #1
    您好没太理解前者后者以及后面对应的关系,能写一个小的代码模块详细一些么,麻烦您了
    2017-05-22 16:47:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师