首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javadoc评论- CompareTo?

Javadoc评论- CompareTo?
EN

Stack Overflow用户
提问于 2015-08-11 04:27:16
回答 5查看 2.5K关注 0票数 2

我的书要求我为一段代码写一个Javadoc注释。在大多数情况下,我理解如何做javadocs,但我不知道程序在做什么。

为类Person的以下方法编写Javadoc注释。假设类Person有两个字符串数据字段lastName和firstName。如果需要,请提供先决条件和后置条件。

代码语言:javascript
复制
public int compareTo(Person per) {
    if (lastName.equals(per.lastName))
        return firstName.compareTo(per.firstName);
    else
        return lastName.compareTo(per.lastName);
}

/**
 * Method to return?
 *
 * @param compare the firstName lexicographically
 * @param compare the lastName  lexicographically
*/

我真的不知道这是在做什么。是还电话号码吗?我看了一些例子

compareto.htm

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-11 04:49:11

你确定不是这样的吗?

代码语言:javascript
复制
Public int compareTo(Person per) {
    if(firstName.compareTo(per.firstName) != 0){
        return firstName.compareTo(per.firstName);
    }
    else{
        return lastName.compareTo(per.lastName);
    }

}

这段代码将根据名字的字典顺序进行排序,如果它们是相同的,那么它将对姓氏进行排序。

每个compareTo方法返回a-1、0或1,具体取决于第一个字符串是否在排序中更快地出现。

票数 2
EN

Stack Overflow用户

发布于 2015-08-11 04:41:42

首先,您的compareTo方法在我看来并不合适:- public应该是公共的。

其次,您的方法是根据firstName或lastName词汇表比较两个Person对象,即字母顺序(A在B或A

例如:-

代码语言:javascript
复制
     String firstName1="B";
     String firstName2="A";
     String firstName3="B";
     String firstName4="C";

     System.out.println(firstName1.compareTo(firstName2));
     System.out.println(firstName1.compareTo(firstName3));
     System.out.println(firstName1.compareTo(firstName4));

Output: 1
 0
-1

如果firstName1 < firstName3,则为-1 (负整数,第一个小于第二个)

如果firstName1 > firstName2,则为1(正整数,第一个大于第二个)

如果firstName1 == firstName2为0(0,两者相等)

现在来看一下您的compareTo方法,应该是这样的:-

代码语言:javascript
复制
     public int compareTo(Person per) {
            int i= firstName.compareTo(per.firstName);
            if(0!= i) return i;
            else
            return lastName.compareTo(per.lastName);
        }
票数 1
EN

Stack Overflow用户

发布于 2015-08-11 04:55:16

“词法”意味着,如果按其(左对齐或右对齐)字符的unicode值排序,则它将出现在另一个字符串之后或其他字符串之前。

把这个加到你的代码里,然后给我们看结果-

代码语言:javascript
复制
System.out.println(Arrays.toString((per.firstName).getBytes())); 
System.out.println(Arrays.toString((firstName).getBytes()));

System.out.println(Arrays.toString((per.lastName).getBytes()));
System.out.println(Arrays.toString((lastName).getBytes()));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31933221

复制
相关文章

相似问题

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