如何实现Java可比较接口? [英] How to implement the Java comparable interface?

查看:44
本文介绍了如何实现Java可比较接口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am not sure how to implement a comparable interface into my abstract class. I have the following example code that I am using to try and get my head around it:

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+"
Year Discovered: "+yearDiscovered+"
Population: "+population;
        return s;
    }
}

我有一个测试类将创建 Animal 类型的对象,但是我希望在这个类中有一个可比较的接口,以便较旧的发现排名高于低.不过我不知道该怎么做.

I have a test class that will create objects of type Animal however I want to have a comparable interface inside this class so that older years of discovery rank higher than low. I have no idea on how to go about this though.

推荐答案

你只需要定义 Animal implements Comparablepublic class Animal implements Comparable代码>.然后你必须按照你喜欢的方式实现 compareTo(Animal other) 方法.

You just have to define that Animal implements Comparable<Animal> i.e. public class Animal implements Comparable<Animal>. And then you have to implement the compareTo(Animal other) method that way you like it.

@Override
public int compareTo(Animal other) {
    return Integer.compare(this.year_discovered, other.year_discovered);
}

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

Using this implementation of compareTo, animals with a higher year_discovered will get ordered higher. I hope you get the idea of Comparable and compareTo with this example.

这篇关于如何实现Java可比较接口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆