【发布时间】:2013-03-04 15:56:55
【问题描述】:
可比接口和比较器接口有什么区别,应该在什么条件下使用
【问题讨论】:
标签: java collections
可比接口和比较器接口有什么区别,应该在什么条件下使用
【问题讨论】:
标签: java collections
Comparable 是定义对象自然顺序的接口。例如,String 按照字典顺序实现 Comparable,Integers 按照数字顺序实现 Comparable。如果一个类具有可比性,这将是应用于其实例的默认顺序(例如,在二分查找、排序或 SortedMap 中)。
比较器定义了一种独立的比较机制,它有时可以替代元素的自然排序。例如,您可以对字符串使用不同的排序逻辑,并将其用于对字符串数组进行排序。
【讨论】:
如果您拥有排序对象,您可以选择在其中实现 Comapreble 或将逻辑分离到不同的比较器中。如果您正在使用第三方对象并且不想扩展它们以添加比较逻辑,则可以使用 Comparator。
【讨论】: