BigInteter 太大而无法转换为整数。但是我必须将具有 id (SHA 512) 的对象存储在 a 中HashMap
,并且需要一个没有很多冲突的哈希函数。
我试过这个。但是,我不确定某处是否没有集群。
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Advertisement other = (Advertisement) obj;
return this.getId().equals(other.getId());
}
@Override
public int hashCode() {
return new BigInteger(getId(), 16).hashCode();
}
转换为整数 (bi.intValue()) 会更有效吗?