首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现Java的可比较接口?

如何实现Java的可比较接口?
EN

Stack Overflow用户
提问于 2014-02-07 19:22:14
回答 6查看 264.4K关注 0票数 109

我不确定如何在我的抽象类中实现一个可比较的接口。我有下面的示例代码,我正在使用它来尝试理解它:

代码语言:javascript
复制
public class Animal{
    public String name;
    public int yearDiscovered;
    public String population;

    public Animal(String name, int yearDiscovered, String population){
        this.name = name;
        this.yearDiscovered = yearDiscovered;
        this.population = population; }

    public String toString(){
        String s = "Animal name: "+ name+"\nYear Discovered: "+yearDiscovered+"\nPopulation: "+population;
        return s;
    }
}

我有一个测试类,它将创建Animal类型的对象,但是我希望在这个类中有一个可比较的接口,以便较早发现的年份排名高于较低的排名。我不知道如何去做这件事。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-02-07 19:25:52

您只需定义该Animal implements Comparable<Animal>,即public class Animal implements Comparable<Animal>。然后,您必须按照自己喜欢的方式实现compareTo(Animal other)方法。

代码语言:javascript
复制
@Override
public int compareTo(Animal other) {
    return Integer.compare(this.year_discovered, other.year_discovered);
}

使用compareTo的这个实现,具有更高year_discovered的动物将得到更高的排序。我希望您能通过这个例子理解ComparablecompareTo的概念。

票数 163
EN

Stack Overflow用户

发布于 2014-02-07 19:25:38

在类中实现Comparable<Animal>接口,并在类中提供int compareTo(Animal other)方法实现。See This Post

票数 1
EN

Stack Overflow用户

发布于 2014-02-07 19:25:59

您需要实现该接口并定义compareTo()方法。要获得好的教程,请访问- Tutorials point linkMyKongLink

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21626439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档