Possible Duplicates:
difference between compare() and compareTo()
Java: What is the difference between implementing Comparable and Comparator?
Comparable 和 Comparator 之间的主要区别是什么。
在什么情况下哪个比另一个更受青睐?
谢谢
已更新 - 带有示例的良好链接!!
http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
最佳答案
当你的类实现Comparable时,该类的 compareTo
方法定义该对象的“自然”顺序。根据契约(Contract)规定,该方法有义务(尽管不是强制要求)与该对象上的其他方法保持一致,例如当 .equals()
比较返回 true 时,应该始终为对象返回 0。
一个Comparator是它自己对如何比较两个对象的定义,可用于以可能不符合自然顺序的方式比较对象。
例如,字符串通常按字母顺序进行比较。因此,"a".compareTo("b")
将使用字母顺序比较。如果您想比较字符串的长度,您需要编写一个自定义比较器。
总而言之,没有太大区别。它们的目的都是相似的。一般来说,实现自然顺序的可比较(自然顺序定义显然可以解释),并为其他排序或比较需求编写比较器。
关于Java : Comparable vs Comparator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59867469/