请解释这种比较方法

时间:2016-11-22 23:38:04

标签: java compareto

public int compareTo(Name other) {
    int result = this.familyName.compareTo(other.familyName);

    if (result == 0) {
        result = this.firstName.compareTo(other.firstName);
    }

    return result;
}

我无法理解代码的内容,如何用它来比较名称。

2 个答案:

答案 0 :(得分:0)

如果姓氏相同,则比较姓氏。

基本上“分组”姓氏。

答案 1 :(得分:0)

这是实现compareTo(请参阅https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)接口的类的Comparable方法。如果对象相同,则compareTo的返回值定义为0;如果参数字典更大,则< 0,如果参数较小,则> 0

此处Name对象的比较结果将委托给compareTo属性的familyName方法。这意味着将当前familyName对象的Name属性与参数的familyName属性进行比较。仅当两个compareTo对象实例的familyName属性相同时,才会进行第二次Name检查。如果是这种情况,则会比较firstName