comparable接口实现排序
时间: 2023-08-21 16:07:04 浏览: 125
要实现排序,可以通过实现 `Comparable` 接口来定义对象的自然排序顺序。`Comparable` 接口是Java提供的一个泛型接口,它包含一个 `compareTo` 方法,用于比较当前对象与另一个对象的大小关系。
以下是一个示例:
```java
import java.util.ArrayList;
import java.util.Collections;
class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Person otherPerson) {
// 按年龄升序排序
return this.age - otherPerson.age;
}
}
public class Main {
public static void main(String[] args) {
ArrayList<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 25));
personList.add(new Person("Bob", 20));
personList.add(new Person("Charlie", 30));
System.out.println("排序前:");
for (Person person : personList) {
System.out.println(person.getName() + " - " + person.getAge());
}
Collections.sort(personList);
System.out.println("排序后:");
for (Person person : personList) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
}
```
输出结果为:
```
排序前:
Alice - 25
Bob - 20
Charlie - 30
排序后:
Bob - 20
Alice - 25
Charlie - 30
```
在上述示例中,`Person` 类实现了 `Comparable<Person>` 接口,并重写了 `compareTo` 方法。该方法根据年龄升序比较两个 `Person` 对象。然后,在 `Main` 类中,我们创建了一个 `ArrayList` 来存储 `Person` 对象,并使用 `Collections.sort` 方法对其进行排序。排序后,我们遍历列表输出排序结果。
阅读全文