java中哈希一般是希望自己写算法的。随便返回什么都可以。如果什么也不写的话就会返回地址。如果自己写,最简单的做法是把所有字段拼起一个长串做个hash值。
哈希码是一种数据结构的算法。常见的哈希码的算法有:1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。
2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串内容相同,返回的哈希码也相同。
3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new
Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。
两个内容相同的对象具有相同的hashcode;反之不成立。
HashMap对象是根据其Key的hashCode来获取对应的Value。
map的实现是数组结合链表。hashcode决定存放位置,两个对象位置一样时比较equals方法。true的话覆盖(同一个对象),false的添加(不是同一个对象)。