Comparable和Comparator都是用于排序的接口,他们之间有什么区别究竟如何去用相信很多小伙伴还是一知半解,下面我就用最简单易懂的语言来深度分析一下这两个接口。
Comparable后缀是able说明它代表的是一种能力,什么能力呢,排序的能力。只要实现了这个接口的类都可以通过Collections.sort和Arrays.sort进行排序.
来看看Comparable接口的源码:
public interface Comparable<T> {
int compareTo(T t);
}
在这个接口中只有一个抽象方法compareTo,实现了Comparable接口的类必须实现这个抽象方法,通过这个方法可以指定排序规则。
下面来看一个例子:
创建学生类,实现Comparable接口重写compareTo这个方法按照年龄进行从小到大排序
public class Student implements Comparable<Student> {
private String name;
private int age;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Student(String name, int age) {
this.name = name;
this.age = age;