首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
Comparable和Comparator接口是干什么的?列
[问答题]
请说明Comparable和Comparator接口的作用以及它们的区别。
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(61)
分享
纠错
9个回答
添加回答
3
小明是个画家20190619110742
Comparable和Comparator接口是用来对自定义的class比较大小的。
Comparator和 Comparable的区别:Comparator定义在Person的外部而Comparable定义在Person的内部。
Comparable定义在Person的内部。public class Persion implements Comparable {..比较Person的大小..},因为已经实现了比较器,那么Person现在是一个可以比较大小的对象了,它的比较功能和String完全一样,可以随时随地的拿来比较大小,因为Person现在自身就是有大小之分的。Collections.sort(personList)可以得到正确的结果。
Comparator是定义在Person的外部的,此时Person类的结构不需要有任何变化,如public class Person{ String name; int age },然后另外定义一个比较器:public PersonComparator implements Comparator() {..比较Person的大小..},在PersonComparator里面实现了怎么比较两个Person的大小. 所以用这种方法,要对一个 personList进行排序的时候除了要传递personList过去,还需要把PersonComparator传递过去,因为怎么比较Person的大小是在PersonComparator里面实现的,如Collections.sort( personList , new PersonComparator() )。
发表于 2019-07-07 13:53:17
回复(0)
3
西瓜同学🏀
Java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。 Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。equals()方法需要一个对象作为参数,它用来决定输入参数是否和comparator相等。只有当输入参数也是一个comparator并且输入参数和当前comparator的排序结果是相同的时候,这个方法才返回true。
发表于 2019-05-05 13:28:25
回复(0)
1
茹(๑•.•๑)
Java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。 Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。equals()方法需要一个对象作为参数,它用来决定输入参数是否和comparator相等。只有当输入参数也是一个comparator并且输入参数和当前comparator的排序结果是相同的时候,这个方法才返回true。
发表于 2019-04-27 13:31:39
回复(0)
0
TiAmo_9955
Comparator定义在Person的外部而Comparable定义在Person的内部。
发表于 2019-05-02 21:18:01
回复(0)
0
江畔8670
Comparable和Comparator 都是用来实现集合中的排序的 只是Comparable是在集合内部定义的方法实现的排序 Comparator是在集合外部实现的排序 所以 如想实现排序 就需要在集合外定义Comparator接口的方法compare()或在集合内实现Comparable接口的方法compareTo() Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String Integer自己就可以完成比较大小操作) Comparator是一个专用的比较器 当这个对象不支持自比较或者自比较函数不能满足你的要求时 你可以写一个比较器来完成两个对象之间大小的比较
发表于 2019-04-29 18:03:21
回复(0)
0
浮森若思
Comparable {形容词adj 类似的}相当于“内部比较器” 比较x.compareTo(y); Comparator {名词n 比较装置}相当于“外部比较器” 比较compare(T o1, T o2) 。 ——来自:https://blog.csdn.net/u010859650/article/details/85009595
编辑于 2019-04-29 07:57:03
回复(0)
0
柠小哀
Comparable和Comparator 都是用来实现集合中的排序的 只是Comparable是在集合内部定义的方法实现的排序 Comparator是在集合外部实现的排序 所以 如想实现排序 就需要在集合外定义Comparator接口的方法compare()或在集合内实现Comparable接口的方法compareTo() Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String Integer自己就可以完成比较大小操作) Comparator是一个专用的比较器 当这个对象不支持自比较或者自比较函数不能满足你的要求时 你可以写一个比较器来完成两个对象之间大小的比较
发表于 2019-04-28 22:52:30
回复(0)
0
听风听雨
实现了comparable支持排序,comparactor是用来比较对象
发表于 2019-02-20 15:57:35
回复(0)
0
猎码
再容器添加数据时,有的需要进行排序,添加的数据所在类必须实现Comparable接口,重新compareTo方法
编辑于 2019-02-14 12:45:05
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
9条回答
61收藏
2969浏览
热门推荐
相关试题
假定一个待哈希存储的线性表为(32...
哈希
评论
(1)
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
你有没有崇拜的偶像,你欣赏他/她身...
通用能力
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题