用户工具

站点工具


分享:技术:hash:hashcode

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
分享:技术:hash:hashcode [2016/02/02 12:55]
gxx
分享:技术:hash:hashcode [2016/02/02 13:02] (当前版本)
gxx
行 7: 行 7:
 一般在散列集合中用到,如:HashSet、HashMap以及HashTable 一般在散列集合中用到,如:HashSet、HashMap以及HashTable
 ===== 作用 ===== ===== 作用 =====
-提高查询效率:equals比较俩对象是否相等,但是如果数据量很大,效率会很差,所以先比较hashcode,如果hashcode不相等,equals肯定不相等;如果hashcode相等,再比较equals,这样大大减少比较equals的次数,提高查询效率!所以hashcode最大的作用就是用于【**判断不相等**】。 +**提高查询效率**:equals比较俩对象是否相等,但是如果数据量很大,效率会很差,所以先比较hashcode,如果hashcode不相等,equals肯定不相等;如果hashcode相等,再比较equals,这样大大减少比较equals的次数,提高查询效率!所以hashcode最大的作用就是用于【**判断不相等**】。 
-===== hashcode与equals关系 =====+===== hashcode与equals ​===== 
 +默认object可以理解为hashcode是返回对象的地址,equals是比较俩对象的地址是否相等**return (this == obj);** 
 + 
 +但是基础类型String,Double,Integer等,重写了hashcode和equals方法,进行的是内容的比较,如果内容一样,不管是不是同一个new出来的对象,返回的hashcode值是一样的和equals比较也是相等的! 
 +===== hashcode与equals的关系 =====
 对于两个对象:​ 对于两个对象:​
   - 如果调用equals方法得到的结果为true,则两个对象的hashcode值必定相等   - 如果调用equals方法得到的结果为true,则两个对象的hashcode值必定相等
分享/技术/hash/hashcode.1454388906.txt.gz · 最后更改: 2016/02/02 12:55 由 gxx