如何在 Java 中的字符串上使用可比较的 CompareTo

2022-09-01 18:10:24

我可以用它来按emp id排序,但我不确定是否有可能比较字符串。我收到一个错误,运算符未为字符串定义。

public int compareTo(Emp i) {
            if (this.getName() == ((Emp ) i).getName())
                return 0;
            else if ((this.getName()) > ((Emp ) i).getName())
                return 1;
            else
                return -1;

答案 1

您需要使用的是字符串的方法。compareTo()

return this.getName().compareTo(i.getName());

这应该做你想做的事。

通常,在实现接口时,您只需合并使用类的其他成员的结果。ComparableComparable

下面是一个非常典型的方法实现:compareTo()

class Car implements Comparable<Car> {
    int year;
    String make, model;
    public int compareTo(Car other) {
        if (!this.make.equalsIgnoreCase(other.make))
            return this.make.compareTo(other.make);
        if (!this.model.equalsIgnoreCase(other.model))
            return this.model.compareTo(other.model);
        return this.year - other.year;
    }
}

答案 2

非常确定你的代码可以这样编写:

public int compareTo(Emp other)
{
    return this.getName().compareTo(other.getName());
}

推荐