分别通过comparable和comparator实现student类按照年龄排序
时间: 2023-04-28 20:01:12 浏览: 109
使用Comparable接口实现:
1. 在Student类中实现Comparable接口,重写compareTo方法,按照年龄比较大小。
```
public class Student implements Comparable<Student> {
private String name;
private int age;
// 构造方法、getter和setter省略
@Override
public int compareTo(Student o) {
return this.age - o.getAge();
}
}
```
2. 在排序时,直接调用Collections.sort方法即可。
```
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 20));
students.add(new Student("李四", 18));
students.add(new Student("王五", 22));
Collections.sort(students);
```
使用Comparator接口实现:
1. 创建一个实现Comparator接口的类,重写compare方法,按照年龄比较大小。
```
public class AgeComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
}
```
2. 在排序时,传入该比较器对象即可。
```
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 20));
students.add(new Student("李四", 18));
students.add(new Student("王五", 22));
Collections.sort(students, new AgeComparator());
```
阅读全文