使用可比较和比较器接口

时间:2013-03-04 15:56:56

标签: java collections

可比较和比较器接口之间的差异以及应该使用哪种条件

2 个答案:

答案 0 :(得分:1)

如果您拥有排序对象,您可以选择在其中实现Comapreble或将逻辑分离到不同的Comparator中。如果您正在使用第三方对象,并且您不想扩展它们以添加复制逻辑,则使用Comparator。

答案 1 :(得分:1)

Comparable是定义对象自然排序的接口。例如,String根据字典顺序实现Comparable,Integers根据数字顺序实现Comparable。如果一个类具有可比性,那么这将是应用于其实例的默认顺序(例如,在二进制搜索,排序或SortedMap中)。

比较器定义了一种独立的比较机制,它有时可以替代元素的自然排序。例如,您可以对字符串使用不同的排序逻辑,并将其用于排序字符串数组。