Comparable/Comparator接口
时间: 2023-12-20 13:31:45 浏览: 26
Comparable和Comparator接口都是Java中用于比较对象的接口。
Comparable接口是在需要比较的对象上实现的,它只有一个方法compareTo(Object other),用于比较当前对象和另一个对象other的大小关系。实现Comparable接口的类可以使用Arrays.sort()或Collections.sort()方法进行排序。
Comparator接口是一个独立的比较器类,它实现了compare(Object o1, Object o2)方法,用于比较两个对象o1和o2的大小关系。Comparator接口可以用于对任意的对象进行比较,而不需要修改对象本身的代码。实现Comparator接口的类可以作为参数传递给Arrays.sort()或Collections.sort()方法进行排序。
下面是一个实现Comparable接口的例子:
```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;
}
public int compareTo(Person other) {
return this.age - other.age;
}
public String toString() {
return name + " (" + age + ")";
}
}
```
下面是一个实现Comparator接口的例子:
```java
public class PersonComparator implements Comparator<Person> {
public int compare(Person p1, Person p2) {
return p1.getName().compareTo(p2.getName());
}
}
```