怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序?

suoocy 2014-07-28 10:50:24
返回 1, 与 -1 与升序降序 有何区别
...全文
5382 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_32958663 2016-04-13
  • 打赏
  • 举报
回复
package pojo;

import java.nio.IntBuffer;
import java.util.Date;

public class Student implements java.io.Serializable,Comparable<Student> {
private String name;
private int age;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public int compareTo(Student arg0) {
//return this.getBirthday().compareTo(arg0.getBirthday()); //升序
return arg0.getBirthday().compareTo(this.getBirthday()); //降序
}
}
许大仙998 2015-05-24
  • 打赏
  • 举报
回复
应该理解成return (-1)×(this.price-o.price)计算机没有所谓的正序和逆序,他只管大还是小,你给他小的放前面,大的放后面,然后乘负一,整个顺序就反过来了
suoocy 2014-07-28
  • 打赏
  • 举报
回复
还是 没懂。。
hedley 2014-07-28
  • 打赏
  • 举报
回复
引用 3 楼 u011162534 的回复:
我说的是compareTo方法。。
o1.compareTo(o2); 就是返回正数的话,当前对象(调用compareTo方法的对象o1)要排在比较对象(compareTo传参对象o2)后面, 返回负数的话,放在前面
suoocy 2014-07-28
  • 打赏
  • 举报
回复
我说的是compareTo方法。。
hedley 2014-07-28
  • 打赏
  • 举报
回复
    @Override
    public int compareTo(Test o) {
        return this.i - o.i;
    }
Comparable接口的comparaTo方法和上面Comparator接口的compare方法类似,这里的this即上面的o1,o即上面的o2
hedley 2014-07-28
  • 打赏
  • 举报
回复
            public int compare(int o1, int o2) {
                return o1 - o2;
            }
正序排列
            public int compare(int o1, int o2) {
                return o2 - o1;
            }
逆序排列 感受一下,返回正数代表o1排在o2后面,返回负数表示o1排在o2前面
suoocy 2014-07-28
  • 打赏
  • 举报
回复
引用 8 楼 rui888 的回复:
看你需要 安从大到小,或者 从小到大。
如果我的需求是降序排列那我应该为啥应该这样写

public int compareTo(Car o) {
		return o.price - this.price;
}
tony4geek 2014-07-28
  • 打赏
  • 举报
回复
看你需要 安从大到小,或者 从小到大。
suoocy 2014-07-28
  • 打赏
  • 举报
回复
引用 6 楼 rui888 的回复:
负数表示第一个串小,0表示两串相等,正数表示第一串较大
那是小的排前面还是大的牌前面?
tony4geek 2014-07-28
  • 打赏
  • 举报
回复
负数表示第一个串小,0表示两串相等,正数表示第一串较大

62,631

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧