半年之前看Collection里关于排序的源码时就纠结过这个Comparable和Comparator的区别,最近在PriorityQueue的中又遇到了这个问题,发现仍有理解模糊之处,温故知新,特别写一篇文章汇总所有。
JournalDev上的两种比较器介绍
注:JournalDev - Java、Java EE、 Android、Web 开发教程
1.Comparable和Comparator的官方比较
Comparable是输入元素可以和同类型进行比较,比较方法是compareTo()。
Comparator 是外部比较器,即业务方可以自己定义排序规则。另外 还可以充分利用多态的向下转型功能,比较方法是compare()