7-1 jmu-Java-04面向对象进阶--02-接口-Comparator
时间: 2024-09-28 11:16:42 浏览: 9
在Java中,`Comparator`是一个接口,它在集合框架如`List`、`Map`等中用于定义元素之间的比较规则。当你需要对集合中的元素按照某种特定方式进行排序,而不是使用默认的自然顺序(比如字符串的字典序),就可以通过实现`Comparator`接口来自定义排序逻辑。
例如,如果你有一个学生对象列表,每个学生有姓名和成绩属性,你可以创建一个`Comparator<Student>`,按成绩对学生进行升序或降序排序:
```java
interface Comparator<T> {
int compare(T o1, T o2);
}
class Student {
String name;
int score;
// getters and setters
}
Comparator<Student> byScoreDesc = (s1, s2) -> s2.getScore() - s1.getScore();
Collections.sort(studentList, byScoreDesc); // 按照分数从高到低排序
Comparator<Student> byNameAsc = (s1, s2) -> s1.getName().compareTo(s2.getName());
Collections.sort(studentList, byNameAsc); // 按照姓名从小到大排序
```
在上述代码中,`byScoreDesc` 和 `byNameAsc` 都是实现了`Comparator`接口的具体实例,它们分别对应了不同的排序规则。