java如何重写collections中的compareto
时间: 2024-01-22 19:17:58 浏览: 96
浅谈对象数组或list排序及Collections排序原理
要重写 `Collections` 中的 `compareTo` 方法,首先需要实现 `Comparable` 接口。然后在实现类中重写 `compareTo` 方法即可。下面是一个简单的示例:
```java
import java.util.*;
public class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person otherPerson) {
// 按年龄从小到大排序
return Integer.compare(this.age, otherPerson.age);
}
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
Collections.sort(people);
for (Person person : people) {
System.out.println(person.name + " " + person.age);
}
}
}
```
上面的示例中,我们定义了一个 `Person` 类,并让它实现了 `Comparable` 接口。在 `compareTo` 方法中,我们按照年龄从小到大排序。然后我们创建了一个 `List`,并将三个 `Person` 对象添加进去。最后,我们调用 `Collections.sort()` 方法来对 `List` 进行排序。排序完成后,我们遍历 `List` 并打印每个 `Person` 对象的姓名和年龄。
阅读全文