java list排序实现
时间: 2023-08-02 21:06:53 浏览: 87
java list排序
Java 中的 List 接口提供了两种方式进行排序:实现 Comparable 接口和使用 Comparator 接口。
1. 实现 Comparable 接口
实现 Comparable 接口的类可以通过实现 compareTo() 方法来指定排序规则。该方法返回一个整数值,表示当前对象与另一个对象的大小关系。
示例代码:
```java
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public int compareTo(Student other) {
if (this.age == other.age) {
return 0;
} else if (this.age > other.age) {
return 1;
} else {
return -1;
}
}
}
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 18));
students.add(new Student("Jerry", 20));
students.add(new Student("Alice", 19));
Collections.sort(students);
```
2. 使用 Comparator 接口
Comparator 接口定义了一个 compare() 方法,它接收两个参数,用于比较两个对象的大小关系,并返回一个整数值。
示例代码:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 18));
students.add(new Student("Jerry", 20));
students.add(new Student("Alice", 19));
Collections.sort(students, new Comparator<Student>() {
public int compare(Student s1, Student s2) {
if (s1.getAge() == s2.getAge()) {
return 0;
} else if (s1.getAge() > s2.getAge()) {
return 1;
} else {
return -1;
}
}
});
```
以上两种方式都可以实现 List 排序,但是 Comparable 接口只能对一个类进行排序,而 Comparator 接口可以对多个类进行排序。
阅读全文