我的书要求我为一段代码写一个Javadoc注释。在大多数情况下,我理解如何做javadocs,但我不知道程序在做什么。
为类Person的以下方法编写Javadoc注释。假设类Person有两个字符串数据字段lastName和firstName。如果需要,请提供先决条件和后置条件。
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
发布于 2015-08-11 04:49:11
你确定不是这样的吗?
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,具体取决于第一个字符串是否在排序中更快地出现。
发布于 2015-08-11 04:41:42
首先,您的compareTo方法在我看来并不合适:- public应该是公共的。
其次,您的方法是根据firstName或lastName词汇表比较两个Person对象,即字母顺序(A在B或A
例如:-
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方法,应该是这样的:-
public int compareTo(Person per) {
int i= firstName.compareTo(per.firstName);
if(0!= i) return i;
else
return lastName.compareTo(per.lastName);
}发布于 2015-08-11 04:55:16
“词法”意味着,如果按其(左对齐或右对齐)字符的unicode值排序,则它将出现在另一个字符串之后或其他字符串之前。
把这个加到你的代码里,然后给我们看结果-
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()));https://stackoverflow.com/questions/31933221
复制相似问题