我正在寻找Java中的哈希函数,该函数对于具有相同长度的键返回相同的哈希值。
int index1 = hashmap.hash("xxx");
int index2 = hashmap.hash("yyy");
assertEquals(index1, index2);
我正在使用此功能:
public int hash(String x) {
int hashCode = x.hashCode();
return (int) ( ( Math.abs( hash_a * hashCode + hash_b) % p_prime ) % capacity );
}
答案 0 :(得分:1)
一个简单的解决方案只是将输入字符串的长度传递给任意哈希函数。
当您传递字符串的长度时,可以通过对函数进行如下更改来完成:
modelBuilder.Entity<RegistoGeometria>()
.HasOne(rg => rg.Registo)
.WithMany(r => r.RegistosGeometria)
.OnDelete(DeleteBehavior.Restrict);