A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步 中级黑马   /  2013-11-14 15:52  /  1036 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哈希值中的值指的是什么
return  this.name.compareTo(s.name );这里的this.name与s.name分别指的是谁

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

倒序浏览
哈希值中值是 对象在内存中的  地址值;
this.name 指的是   谁调用这个 就是指的谁,
s.name 指的是 传进去的参数

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 淡定

查看全部评分

回复 使用道具 举报
hashCode是一直可以表示对象特性的值,是根据一定的规则计算的。
   在hashSet中有很多存储的区域,不同的hashCode对应了不同的存储区域,这样在存入hashSet之前,进行对象比较的时候,就不用遍历整个hashSet而直接根据hashCode去寻找对应区域是否有重复对象,这样的话就提高了效率。
   所以hashCode并仅仅是得到一个大小的数值,更多的,是根据他的值来确定存储区域,以及区分对象。
你这里的this是指定的当前运行的对象,而这个s应该是你调用函数传递进来的引用,你可以多贴点代码上来看看
回复 使用道具 举报
创建类类型对象引用时赋给引用的值,就类似于地址,这个值指向具体new的实例对象,
Person person1=new Person();
Person person2=new Person();
创建两个Person的实例对象,person1和person2这两个引用存的的就是new Person();
时候产生的哈希值,这两个对象引用的哈希值就不一样,

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马