零基础学java中set接口的实现类
发表在Java视频课程答疑 2017-10-19 悬赏:2 学分
是否精华
版块置顶:

这里compareTo的用法是什么,Object o是不是固定写法,为什么-1就代表传入的参数比我本身小,o就排在类本身前面?而为什么this.id-p.id大,我排在你后面,还有diff为0时return diff有什么用

Screenshot_2017-10-19-18-24-28-360_com.mingrisoft_it_education.png


2017-10-19 21:37:05编辑
分享到:
精彩评论 3
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-10-20
沙发
  1. 这个方法是用来比较两个对象的大小的,是Comparable接口的实现方法,想要深入了解可以查询这个接口的API文档。

  2. Object o是方法参数,Object是所有类的父类,也就是说这个方法可以传入任何类型的参数。o是参数名,想写什么就写什么。

  3. 为什么返回值是小于0、等于0、大于0表示对象的比较结果,这是Comparable接口定义的规则。

  4. diff为0时,说明两个对象相等。

老师您好
学分:825 LV7
2017-10-20
板凳

根号申 发表于2017-10-20 09:30

  1. 这个方法是用来比较两个对象的大小的,是Comparable接口的实现方法,想要深入了解可以查询这个接口的API文档。

  2. Object o是方法参数,Object是所有类的父类,也就是说这个方法可以传入任何类型的参数。o是参数名,想写什么就写什么。

  3. 为什么返回值是小于0、等于0、大于0表示对象的比较结果,这是Comparable接口定义的规则。

  4. diff为0时,说明两个对象相等。

申老师您好,我实在搞不懂这段代码是怎么执行的,您能不能按照视频中的这几个例子,讲解一下这段代码的执行过程。

-1表示传入的参数比本类对象值小,或者说传入的参数比本类对象位置靠前(也就是说传入的对象不继承自person就排在本类前面)

如果参数是person类对象,就让两者的id相减,谁的id大谁排在后面,谁的id小谁排在前面,id一样就返回0.

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-10-24
地板

老师您好 发表于2017-10-20 18:17

申老师您好,我实在搞不懂这段代码是怎么执行的,您能不能按照视频中的这几个例子,讲解一下这段代码的执行过程。

-1表示传入的参数比本类对象值小,或者说传入的参数比本类对象位置靠前(也就是说传入的对象不继承自person就排在本类前面)

如果参数是person类对象,就让两者的id相减,谁的id大谁排在后面,谁的id小谁排在前面,id一样就返回0.

这个是方法是由TreeSet自动执行的。当你向TreeSet添加元素的时候,TreeSet会调用参数对象的compareTo()方法,于集合中的元素挨个对比,从而找到新元素存放的位置。你只要指定要compareTo()中的比对规则就可以了。

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照