可能重复:
Java: What is the difference between implementing Comparable and Comparator?
可比较的接口和比较器接口之间的差异以及使用位置?示例?
答案 0 :(得分:4)
Comparable
使一个对象本质上与其他对象相当。
Comparator
允许实现外部比较逻辑,该逻辑可应用于非Comparable
的对象,或者需要与其默认比较逻辑不同的逻辑。
例如,您有Collections.sort(list)
,它只能对实现Comparable
的对象列表进行排序,而另一种方法是Collections.sort(list, comparator)
,您可以通过该方法对任何列表进行排序。< / p>
答案 1 :(得分:0)
在概念上,比较器是“比较运算符”,即逻辑,用于确定Comparable是否大于/小于另一个Comparable。
PS:我在比较运算符中使用的术语“运算符”相当松散;因为他们不是操作符,因为符号(例如&lt;)在语法上分配给操作。
在更实际的意义上,Comparable允许Object确定如何将自己与另一个Object进行比较。而Comparator允许程序员确定如何比较两个对象。