Comparing Object Values Using Hash Codes

转载 2004年07月07日 01:03:00
Comparing Object Values Using Hash CodesThe hash code of an object is an integer value that's computed using the value of the object. For example, for a String object, the characters of the string are used to compute the hash code. For an Integer object, the integer value is used to compute the hash code.

Hash codes are typically used as an efficient way of comparing the values of two objects. For example, if the hash code of the string "hello" is 33, another String object with the same contents would also a hash code of 33.

If the hash codes of two object values are different, the object values are guaranteed to be different. However, if the hash codes of two object values are the same, the object values are not guaranteed to be the same. An additional call to Object.equals() must be made to confirm that the object values are the same. A good hash code algorithm will minimize the chance of two different values having the same hash code.

The `==' operator is the most efficient way to determine if two objects (rather than object values) are the same. However, in very limited applications, it may be necessary to get the hash code of an object (called the identity hash code) rather than of the object value. For example, a hash table of objects requires the use of the identity hash code.

 File file1 = new File(); File file2 = new File(); File file3 = new File(); // Get the hash codes int hc1 = file1.hashCode(); // 1234416 int hc2 = file2.hashCode(); // 1234416 int hc3 = file3.hashCode(); // 1234419 // Check if two object values are the same if (hc1 == hc2 && file1.equals(file2)) { // They are the same } // Get the identity hash codes int ihc1 = System.identityHashCode(file1); // 1027049 int ihc2 = System.identityHashCode(file2); // 14642381 int ihc3 = System.identityHashCode(file3); // 6298545 

哈希检索方面的论文、代码和数据集Learning to Hash Paper, Code and Dataset

Learning to Hash Paper, Code and Dataset Table of Content Introductio...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年05月08日 14:15
  • 2648

MySQL BTree索引和hash索引的区别

备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法: CREATE TABLE t( aid int unsigned not null auto_...
  • oChangWen
  • oChangWen
  • 2017年01月04日 20:57
  • 2988

Hashing图像检索源码及数据库总结

下面的这份哈希算法小结来源于本周的周报,原本并没有打算要贴出来的,不过,考虑到这些资源属于关注利用哈希算法进行大规模图像搜索的各位看官应该很有用,所以好东西本小子就不私藏了。本资源汇总最主要的收录原则...
  • yongyuanstu
  • yongyuanstu
  • 2014年06月10日 10:11
  • 3256

Displets论文读后感

1.论文基本信息 题目:Displets:Resolving Stereo Ambiguities using Object Knowledge 来源:Conferenceon Computer Vi...
  • zzzwwwmmm
  • zzzwwwmmm
  • 2015年10月27日 09:28
  • 1236

警惕 InnoDB 和 MyISAM 创建 Hash 索引陷阱

MySql 常见存储引擎 InnoDB 和 MyISAM 都不支持 Hash 索引,它们默认的索引都是 B-Tree。但是如果你在创建索引的时候定义其类型为 Hash,MySql 并不会报错,而且你通...
  • defonds
  • defonds
  • 2015年07月07日 11:33
  • 9886

SpringMVC+Spring+MyBatis 的综合练习 8 (Generator生成的实体类)

我看到在实体类包中出现了四个类。多出来两个带 Example 的是什么呢? 限于篇幅,只研究 Department.java 和 DepartmentExample.java 这两个就好了,Empl...
  • hh680821
  • hh680821
  • 2018年01月14日 11:30
  • 42

python笔记四-字典

1、当索引不好用时候,使用字典。 2、
  • deerleaper
  • deerleaper
  • 2014年08月27日 09:37
  • 1466

如何解决不能绘制网络模型,报错protobuf

绘制网络模型,总显示这样的错误: AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' object has no ...
  • yiranyhy
  • yiranyhy
  • 2017年02月17日 13:44
  • 2406

基于shape context的匹配算法

基于shape context的匹配算法 ‘shape context’是表述点集之间关系的一种方法。与原始算法相关的资源如下: 文献:Shape Matching and Ob...
  • u013468614
  • u013468614
  • 2017年02月28日 14:36
  • 138

hashing代码大全

转自:http://blog.csdn.net/willard_yuan/article/details/29806755 下面的这份哈希算法小结来源于本周的周报,原本并没有打算要贴出来的,...
  • yaotaoedu
  • yaotaoedu
  • 2014年07月19日 14:50
  • 1391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Comparing Object Values Using Hash Codes
举报原因:
原因补充:

(最多只允许输入30个字)