java在自定义排序中具有可比性,而不是比较器
当我在Java中搜索Comparable和Comparator接口之间的差异时,大多数时候我得到的答案是Comparator可以用于定制排序。你能回答以下问题吗? 1)为什么我们不能在定制排序中使用Compariable而不是Compariator(最后两者都有一个比较后返回int的方法。)
注意:请坚持这个问题。我不是在寻找这两个接口的定义
你可以在下面搜索框中键入要查询的问题!
当我在Java中搜索Comparable和Comparator接口之间的差异时,大多数时候我得到的答案是Comparator可以用于定制排序。你能回答以下问题吗? 1)为什么我们不能在定制排序中使用Compariable而不是Compariator(最后两者都有一个比较后返回int的方法。)
注意:请坚持这个问题。我不是在寻找这两个接口的定义
# 1 楼答案
Comparable和Comparator都可以用于自定义排序,但它们的用法有所不同
Comparable
接口可用于提供一种排序方式 而Comparator
接口可用于提供多种 分类对于使用
Comparable
,类需要实现它,而对于使用Comparator
,我们不需要对类进行任何更改对于使用
Comparable
,我们不需要在客户端进行任何代码更改。数组。排序()或集合。sort()方法自动使用类的compareTo()方法。 但是,要使用Comparator
,客户机需要提供在compare()方法中使用的Comparator
类因此,基于上述需求,您可以选择
Comparable
接口或Comparator
接口