如果两个对象 x 和 y 满足 x.equals(y) == true,它们的哈希码(hash code)应当相
同。Java 对于 eqauls 方法和 hashCode 方法是这样规定的:
(1)如果两个对象相同(equals 方法返回 true),那么它们的 hashCode 值一定要相同;
(2)如果两个对象的 hashCode 相同,它们并不一定相同。
当然,你未必要按照要求去做,但是如果你违背了上述原则就会发现在使
用容器时,相同的对象可以出现在 Set 集合中,同时增加新元素的效率会大大下降(对于使
用哈希存储的系统,如果哈希码频繁的冲突将会造成存取性能急剧下降)。
哈希码
最新推荐文章于 2024-03-02 16:34:22 发布