为对象作比较有两种方式: 一个是 Comparable方法, 一种是Comparator比较器实现
一. Comparable接口
Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些 类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现
compareTo方法也被称为自然比较方法, 返回值是 int
该方法返回 < 0 比较者小于被比较者(即o指向的对象)
该方法返回 == 0 比较者=被比较者
该方法返回 > 0 比较者大于被比较者(即o指向的对象比较小)
二. Comparator接口
Comparator<E> 是一个外比较器
Comparator 接口里面有一个compare方法,方法有两个参数o1和o2, 是泛型的表示方式,分别表示待比较的两个对象, 方法返回值和Comparable接口一样是int, 有三种情况:
若o1<o2,返回一个负整数;
若o1==o2返回0;
若o1>o2,返回一个正整数
三. Comparable 和Comparator 的区别
Comparable 是一个内比较器, 和类关联在一起的,是类本身自带的一种自然比较方法
Comparator 是一个外比较器,可以用于两个对象作比较,但是它比较灵活,可以脱离类的实现而存在的对象的比较.
有以下两种情况都可以实现Comparator接口: 一是类没有实现Comparable接口, 二是类实现了Comparable接口, 但是开发者认为CompareTo方法中的比较方式不是自己想要的那种比较方式, 因此可以实现Comparator接口,自己定义一个比较器进行比较
