首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
Comparable和Comparator区别是什么?
[问答题]
Comparable和Comparator区别是什么?
添加笔记
求解答(0)
邀请回答
收藏(138)
分享
纠错
6个回答
添加回答
17
木子汐
Comparable可作为一个类的内部排序实现,Java中一些普通类型如String、Integer等都实现了该接口,我们直接使用即可。
Comparator是外部排序接口,使用策略模式,一个类的排序规则在基于“开闭原则”时,可通过实现Compartor制定多个比较排序策略,供该类采用。可用于Collections.sort()、Arrays.sort()以及一些内部有序的类(SortedSet、SortedMap等)。
发表于 2021-03-05 12:08:28
回复(0)
10
牛客122753322号
1.Comparator位于包java.util下,而Comparable位于包java.lang下
2.Comparable接口将比较代码嵌入自身类中,而
Comparator
在一个独立的类中实现比较。
3.Comparator接口的比較方法compare(A,B)有兩個參數,
Comparable的比較方法compareTo(A)只有1個參數
发表于 2021-01-27 14:34:58
回复(0)
0
牛客阿道夫
Bznna
发表于 2022-02-20 12:40:26
回复(0)
0
牛客545754654号
Comparable在java.long包下,为实现该接口的子类所有对象添加自然排序规则,是类自提供的比较器,需要在目标类中实现Comparable接口,并编写比较规则。
Comparator在java.util包下,是java.util提供的一个比较器,可以用于需要比较排序,但未实现Comparable的类,属于外部提供的,可以通过增加类来实现对象的比较、排序功能,也可以使用Collections.sort(),在该排序工具中传入排序目标对象与Comparator的匿名对象实现无入侵排序。
发表于 2021-05-08 15:47:52
回复(0)
0
韶华阿斯顿
Comparable是一个排序接口,实现该接口意味着该类支持排序,Comparator是比较器,需要新建一个类用于充当比较器。
Comparable比较简单,但需要修改源代码,Comparator不用修改源代码,而是新增一个比较类,只需要调用的时候将对象和比较器一同传入sort中即可,
并且在Comparator中用户可以自己实现复杂的逻辑。
发表于 2021-04-16 09:32:28
回复(0)
0
0123_6
Comparable有一个CompareTo(T o)方法,实现该接口的类可以直接排序,相当于内排序.
Comparator的方法较多,外部排序接口,可以在Collections.sort(List<t> list,Comparator<? super T> c)和Arrays.sort(T[] a,Comparator<? supere T> c)中作为排序类传入.</t>
发表于 2020-12-31 21:09:57
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
网易
2021
Java工程师
上传者:
小小
难度:
6条回答
138收藏
1145浏览
热门推荐
相关试题
五月份的商品销售额为60万元,该月...
数据分析师
途虎
2021
评论
(2)
来自
途虎养车2021秋招数据...
两个圆相交,交点是A1,A2。现在...
微软
网易
智力题
评论
(25)
来自
网易互娱2013研发工程...
有三个企业的年利润额分别是5000...
数据分析师
途虎
2021
评论
(10)
来自
途虎养车2021秋招数据...
相关性分析有哪些?
评论
(1)
如何检验聚类分析结果
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题