gpt4 book ai didi

java - 当键具有相同长度时,哈希函数返回相同的哈希值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:30 25 4
gpt4 key购买 nike

我正在寻找 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 );
}

最佳答案

一个简单的解决方案就是将输入字符串的长度传递给任意哈希函数。

由于您将传递字符串的长度,因此可以通过对您的函数进行一些小的更改来完成,如下所示:

// hash_a, hash_b, p_prime, and capacity variables are defined in a class.
public int hash(String x) {
int hashCode = x.length(); // this line is updated
return (int) ( ( Math.abs( hash_a * hashCode + hash_b) % p_prime ) % capacity );
}

关于java - 当键具有相同长度时,哈希函数返回相同的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com