我被要求写一个student.compareTo方法,如果两个学生的名字和两个学生的姓氏相同,则该方法应返回0。如果学生的名字按字典顺序排序低于传入的名字,则应返回负值。如果学生的名字按字典顺序排序高于传入的名字,则应返回正值。
这是我到目前为止的代码。对于负值和正值,它应该是固定值还是我应该使用compareTo值?
public int compareTo(Student){
int comparison = (this.firstName.compareTo(Student.firstName));
int comparison2 = (this.lastName.compareTo(Student.lastName));
if (comparison == comparison2)
return 0;
else if ((comparison=0 && comparison2<0) ||(comparison<0 && comparison2=0)
return -1;
else
return 1;
}
这是另一个代码。我想知道我是否做对了
public int compareTo(Student){
String studentinfo=(this.firstName + this.lastName);
String studentinfo2=(s1.firstName + s1.lastName);
int comparison =studentinfo.compareTo(studentinfo2);
return comparison;
}
这太复杂了。。。
链接您的比较;仅当第一个返回0时,运行第二个;如果第二个返回0,则运行第三个;等
也就是说,返回第一个非零的比较结果,或者最后一个。示例:
@Override
public int compareTo(final Student other)
{
int ret = firstName.compareTo(other.firstName);
if (ret != 0) // No need to go further
return ret;
// Hypothetic second comparison to do before lastName
// ret = foo.compareTo(other.foo);
// if (ret != 0)
// return ret;
// Rinse, repeat...
// All previous comparisons returned 0,
// return the result of the last comparison
return lastName.compareTo(other.lastName);
}
Guava有一个很好的实用程序类:
@Override
public int compareTo(final Student other)
{
return ComparisonChain.start()
.compare(firstName, other.firstName)
.compare(lastName, other.lastName)
.result();
}
null }
问题内容: 在oracles 网站上的Java API中:“ compareTo返回:”如果参数字符串等于此字符串,则值为0;否则为0。如果此字符串在字典上小于字符串参数,则小于0的值;如果该字符串在字典上大于字符串参数,则该值大于0。 这是一个if语句: 由于字符串a在字典上较大,因此返回true。 我的问题是,compareTo总是返回0、1或-1吗?还是返回字符串大于或小于字符串参数的实际
当实现Comparable接口并重写compareTo方法时, 第三行,我意识到当我重写它时,我可以使用compareTo,它会自动按照自然顺序进行比较。但是在可比较的界面中,它不是一个抽象的方法。没有定义它,它还可以比较吗?还有,为什么我不需要使用super关键字来区分这个比较。
本文向大家介绍Java字符串compareTo()方法,包括了Java字符串compareTo()方法的使用技巧和注意事项,需要的朋友参考一下 您可以使用方法或,方法或或==运算符比较字符串。下面的示例演示如何在Java中初始化和比较字符串。 示例 输出结果
问题内容: 我正在编写一个类,该类将一堆银行帐户放入数组列表中,并根据其帐号进行排序。我写的方法如下: 在我的主要方法中,是数组列表的变量。当我尝试执行操作时无法执行此操作。它给我一个错误,说出诸如“无法从参数实例化,因为实际参数和形式参数的长度不同”和“推断的类型不符合声明的边界”之类的错误。我以为这是由于我没有重写方法,但是当我尝试这样做时,它说“方法不会重写或实现超类型的方法”。我不明白问题
问题内容: 常见问题:在Java中实现默认方法的覆盖时,与仅将已实现的方法与将独立逻辑写入equals方法相比,我应该担心什么?我注意到有人在另一个问题中提及,该问题返回false而抛出。是什么使这些不一致的结果成为理想的功能? 采样方法: 编辑: 引用可比文档 当且仅当e1.compareTo(e2)== 0对于C类的每个e1和e2具有与e1.equals(e2)相同的布尔值时,才可以认为C类的