java compareto方法重写
时间: 2023-10-14 11:09:10 浏览: 48
在Java中,`compareTo()`方法是用于比较两个对象的大小关系的方法,它是定义在`Comparable`接口中的。如果你想在自定义的类中使用`compareTo()`方法,需要实现`Comparable`接口并重写`compareTo()`方法。
下面是一个示例:
```java
public class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写compareTo方法
@Override
public int compareTo(Person other) {
// 比较年龄大小,如果年龄相同则比较姓名大小
int result = Integer.compare(this.age, other.age);
if (result == 0) {
result = this.name.compareTo(other.name);
}
return result;
}
// 其他方法
// ...
}
```
在这个例子中,我们定义了一个`Person`类,实现了`Comparable`接口,并重写了`compareTo()`方法。在`compareTo()`方法中,我们首先比较两个`Person`对象的年龄大小,如果年龄相同,则比较姓名大小。最后,返回比较结果。
使用示例:
```java
Person p1 = new Person("Tom", 20);
Person p2 = new Person("Jerry", 18);
Person p3 = new Person("Alice", 20);
System.out.println(p1.compareTo(p2)); // 输出 1,p1的年龄比p2大
System.out.println(p1.compareTo(p3)); // 输出 0,p1和p3的年龄相同,但是p1的姓名比p3的大
System.out.println(p2.compareTo(p3)); // 输出 -1,p2的年龄比p3小
```