【发布时间】:2017-08-24 10:39:45
【问题描述】:
如果在 Java 中添加 2 个其他哈希码生成一个新的哈希码,碰撞的概率是多少
例如:
Integer reportHashCode = reportFields.hashCode() + reportId.hashCode();
假设 Java 的哈希码是 32 位,我们可以忽略哈希码本身的正常冲突。
【问题讨论】:
-
这种情况下哈希码是
xored 是有原因的... -
我应该做异或而不是加法吗?
-
我认为你的意思是“溢出”而不是“碰撞”
-
哦!完全没想过..是啊..溢出的概率很大..对吧?
-
@StenalPJolly 使用
xor的另一个原因。但即使它溢出,哈希映射/集合中使用的哈希码也不关心溢出。 int 的溢出仍然是 int。