在复习SCJP时候,有问到
if the hashcode values are different, the objects might be equal.这里的hashcode是什么啊?谢谢大家!
if the hashcode values are different, the objects might be equal.这里的hashcode是什么啊?谢谢大家!
解决方案 »
- 用Swt的canvas画图后,怎样保存所画的图
- 这道简单题求解释···
- class not found:javax/xml/rpc/Service,该用什么JAR包啊?
- 请教byte的基础问题
- 使用java中的什么类可以将tif转换为jpg??
- 序列化对象关于不同的serialVersionUID的问题
- 怎样给JLabel里的文本加下划线?
- Exception in thread "main"java.lang.NoClassDefFoundError:HelloDate(在线)
- 请帮忙分析错误原因
- 在linux下怎样解压j2sdk-1.3.0-RC1-linux-i386.tar.bz2这种类型的文件??
- 为什么重写了equals方法,还是没法实现?
- 关于swing外观插件的问题~~~
就是一个散列码,就像MD5一样,但没MD5那么复杂。
Think In Java 3里面有一个比较好的算法。
查询一个值的过程首先就是计算散列码,然后使用散列码查询数组。数组并不直接保存值,而是保存值的list。然后对list中的值使用equels()方法进行线性查询。这部分查询会比较慢,但是,如果散列函数好的话,数组的每个位置只有较少的值。因此不是查询真个list,而是快速的跳到数组的某个位置,只对少数的元素进行比较。
默认的散列码计算方法是:使用对象的地址计算散列码。以上引自thinking in java
反之不行,即可能会存在 a.hashCode() == b.hashCode() 但 a.equals(b) == false一般来说hashCode只会用在HashMap等等这些类上,用处在于快速查找。
你有兴趣可以看看它的代码实现