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()
时,应始终为对象返回 0。比较返回 true。
一个 Comparator是它自己对如何比较两个对象的定义,可用于以可能不符合自然顺序的方式比较对象。
例如,字符串通常按字母顺序进行比较。因此 "a".compareTo("b")
将使用字母比较。如果你想比较字符串的长度,你需要编写一个自定义比较器。
简而言之,没有太大区别。它们都是类似手段的目的。通常为自然顺序实现可比较(自然顺序定义显然可以解释),并为其他排序或比较需求编写比较器。
关于 java : Comparable vs Comparator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108604/