一、Comparable接口
此接口的目的是进行排序
1、接口介绍
public interface Comparable<T> {
public int compareTo(T t);
}
- 首先实现了这个接口的类必须实现compare(T t)方法,以后这个类就可以排序了(也就是可以直接用Collections.sort或Arrays.sort进行排序)
- 下面来个例子
@Lombok
public class hello implements Comparable<hello>{
private String name;
private int age;
@Override
public int compareTo(Person o) {
//当然你类里面可以有很多属性,根据其他的属性进行判断
return this.age-o.age;
}
}
- 好啦,有了上面的类后,以后我们new 出来的对象可以放到一个对象数组,或者象放到ArraysList里面呀,然后调用Collections.sort(xxx)或Arrays.sort(xxx)进行排序
二、Comparator接口
1、接口介绍
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}
- 首先一个类:如果想要实现其可以不同对象可以进行比较的话,可以实现Comparator接口,覆写它的方法boolean equals(Object obj);可以实现类的大小比较。
2、写一个自己的比较器
package comparator;
import java.util.Comparator;
public class MyComparator implements Comparator<hello> {
@Override
public int compare(hello h, hello h2) {
return h1.getAge() - h2.getAge();
}
}
- 比较原则:int compare(T o1, T o2) 是“比较o1和o2的大小”。返回“负数”,意味着“o1比o2小”;返回“零”,意味着“o1等于o2”;返回“正数”,意味着“o1大于o2”。