你好,游客 登录 注册 搜索
背景:
阅读新闻

Java中的Comparable接口

[日期:2016-12-11] 来源:Linux社区  作者:lulipro [字体: ]

类对象之间比较“大小”往往是很有用的操作,比如让对象数组排序时,就需要依赖比较操作。对于不同的类有不同的语义。如Student类,比较2个学生对象可以比较他们的score分数来评判。

Java不支持预算符重载,我们通过实现Comparable接口达到相同的目的。当类实现了Comparable接口,则认为这个类的对象之间是可比较的。

Comparable是java SDK中的一个内置的泛型接口。

源代码:(很简单,只有规定了一个接口方法)

public interface Comparable<T> {
  public int compareTo(T o);

  //按照规定:如果 this 比 o 小,则返回一个负数,如果 this 比 o 大,则返回正数,否则返回0


}

例子

public class Test {

   
    public static void main(String[] args) {
       
       
        Student[] students = { new Student("bob", 90.0)  , new Student("jack", 89.0),new Student("mary", 99.0)};
       
       
        Arrays.sort(students);
       
        for(Student s:students)
            System.out.println(s);

    }
}


class Student implements Comparable<Student>
{

   
    Student(String name,double score)
    {
        this.name = name;
        this.score = score;
    }
   
    private double score;
    private String name;
   
   
   
    @Override
    public int compareTo(Student o) {
       
        return Double.compare(this.score, o.score);     //借用Double包装类本身的compare方法
    }
   
    @Override
    public String toString() {
       
        return String.format("name:%s  score:%f", name,score);
    }
}

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138181.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款