在Java中,哈希码代表对象的特征。

 

  例如对象 String str1 = “aa”, str1.hashCode= 3104

 

  String str2 = “bb”, str2.hashCode= 3106

 

  String str3 = “aa”, str3.hashCode= 3104

 

  根据HashCode由此可得出str1!=str2,str1==str3

 

  哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。

 

  下面给出几个常用的哈希码的算法。

 

  1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。

 

  2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串内容相同,返回的哈希码也相同。

 

  3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。

posted on 2012-09-12 18:59  Adonstein  阅读(367)  评论(0编辑  收藏  举报