为啥java中有两个接口可比较和比较器用于对集合进行排序? [复制]
Posted
技术标签:
【中文标题】为啥java中有两个接口可比较和比较器用于对集合进行排序? [复制]【英文标题】:why there is two interface comparable and comparator in java for sorting the collections? [duplicate]为什么java中有两个接口可比较和比较器用于对集合进行排序? [复制] 【发布时间】:2016-10-23 20:42:54 【问题描述】:为什么在 java 中有两个接口可比较和比较器用于对集合进行排序?
似乎两者都在执行相同的任务...对这种排序技术感到困惑?请指教
【问题讨论】:
google 在提问之前。 difference between Comparable and Comparator A blog post regarding comparable and comparator 这不是为了讨论,这是为了解决问题,所以请提出正确的问题,检查这个programcreek.com/2011/12/… 【参考方案1】:人们可能希望以其他方式对给定对象进行排序,而不是在给定对象中定义它(使用Comparable
),这就是Comparator
可用的原因。
Comparable
- 在给定的类中用于定义默认/自然排序排序
Comparator
- 由foreign 代码(例如来自不同库)用于以不同方式对数据进行排序,或将排序添加到未定义Comparable
的类中,或添加不同的排序顺序(例如,有时您可能希望对字符串进行排序不区分大小写,有时也区分大小写)。
【讨论】:
以上是关于为啥java中有两个接口可比较和比较器用于对集合进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章