当实现Comparable接口并重写compareTo方法时,
@Override
public int compareTo(Name o) {
int val = this.name.compareTo(o.name);
if (val != 0) {
return val;
}
if (count != o.count) {
return count - o.count;
}
}
第三行,我意识到当我重写它时,我可以使用compareTo,它会自动按照自然顺序进行比较。但是在可比较的界面中,它不是一个抽象的方法。没有定义它,它还可以比较吗?还有,为什么我不需要使用super关键字来区分这个比较。
您正在类名中实现方法
compareTo
您正在调用
X. compareTo
,其中X是您声明成员变量name
的类型。
换句话说,只有当
name
不是instanceof name
时,这才有效。
顺便说一下,您需要在最后一个if块中添加一个带有return语句的else分支,否则此代码段将无法编译。
我被要求写一个student.compareTo方法,如果两个学生的名字和两个学生的姓氏相同,则该方法应返回0。如果学生的名字按字典顺序排序低于传入的名字,则应返回负值。如果学生的名字按字典顺序排序高于传入的名字,则应返回正值。 这是我到目前为止的代码。对于负值和正值,它应该是固定值还是我应该使用compareTo值? 这是另一个代码。我想知道我是否做对了
问题内容: 常见问题:在Java中实现默认方法的覆盖时,与仅将已实现的方法与将独立逻辑写入equals方法相比,我应该担心什么?我注意到有人在另一个问题中提及,该问题返回false而抛出。是什么使这些不一致的结果成为理想的功能? 采样方法: 编辑: 引用可比文档 当且仅当e1.compareTo(e2)== 0对于C类的每个e1和e2具有与e1.equals(e2)相同的布尔值时,才可以认为C类的
我有一门狗和猫的课,看起来像这样: 这些类都实现了我创建的一个名为Speakable的接口,它看起来像这样: 这个Speakable接口之所以存在,是因为我需要一个引用变量,允许我将狗和猫添加到同一个ArrayList中,并且仍然在它们上调用说话()方法。 我还需要重写Comparable接口的compareTo()方法,以便比较狗的名字。调用此方法时,我认为我的代码如下所示:a.compareT
通过删除所有前导和尾随空格返回一个新字符串。 但是,此方法不会丢弃两个字符串之间的空格。 语法 (Syntax) compareTo(String other) 返回值 (Return Type) 返回表示两个字符串之间关系的整数。 0 - 字符串相等时。 1 - 当第一个字符串大于第二个字符串时 -1 - 当第一个字符串小于第二个字符串时 例子 (Example) void main() {
它返回一个整数,表示两个数字之间的关系。 语法 (Syntax) Number.compareTo(x) 参数 (Parameter) x - 代表一个数字。 返回值 (Return Value) 返回值 - 0 - 如果值相等。 1 - 如果当前数字对象大于指定的数值。 -1 - 如果当前数字对象小于指定的数字值。 例子 (Example) void main() { var a =