1. Comparable 是在类的内部实现的,当类实现了Comparable接口时,该类的集合如ArrayList就可以通过ArrayList。Sort进行排序了。Comparator是在类外部重新实现一个比较器。
2. 如果某个类没有实现Comparable接口,而这个类又不是你自己写的无法更改其代码时,你可以自己写一个类实现Comparator接口,然后通过这个新的类进行比较。
3. Comparator可以实现多种比较方式,而Comparable 只能以一种方式进行比较。比如我们有Person类,有Age和Name属性。当实现Comparable 时我们可能只能制定通过Age或Name进行排序。然而我们却可以实现两个类:AgeComparator 和NameComparator 来达到根据不同情况对不同属性进行排序的效果。 |