相关疑难解决方法(0)

如何在android中生成字符串输入的唯一哈希码...?

我想为android中的字符串生成一个唯一的哈希码.是否有任何预定义库或我们必须手动生成.如果有任何正文,请提供链接或代码.

java hash android hashmap

50
推荐指数
3
解决办法
14万
查看次数

为什么Java中的String.hashCode()有很多冲突?

为什么String.hashcode()有这么多冲突?

我在jdk1.6中读取String.hashCode(),下面是代码

public int hashCode() {
    int h = hash;
    if (h == 0) {
        int off = offset;
        char val[] = value;
        int len = count;

        for (int i = 0; i < len; i++) {
            h = 31*h + val[off++];
        }
        hash = h;
    }
    return h;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说很混乱,因为它有很多冲突; 虽然它不需要是唯一的(我们仍然可以依赖于equals()),但是更少的冲突意味着更好的性能而无需访问链表中的条目.

假设我们有两个字符,那么只要我们找到两个匹配下面的方程的字符串,那么我们就会有相同的hashcode()

a * 31 +b = c * 31 +d
Run Code Online (Sandbox Code Playgroud)

很容易得出结论,(a-c) * 31 = d-b 一个简单的例子是make ac = 1和db = 31; 所以我写下面的代码进行简单的测试

public void testHash() {
    System.out.println("A:" …
Run Code Online (Sandbox Code Playgroud)

java string hashcode

27
推荐指数
3
解决办法
2万
查看次数

如何从唯一的字符串生成唯一的int?

我有一个带有String的对象,该String包含唯一的id.(例如"ocx7gf"或"67hfs8")我需要为它提供一个int hascode()的实现,这显然是唯一的.

如何以最简单/最快的方式将字符串转换为唯一的int?

10X.

编辑 - 好的.我已经知道String.hashcode是可能的.但不建议在任何地方使用.实际上'如果不推荐任何其他方法 - 我是否应该使用它,如果我的对象在集合中,我需要哈希码.我应该将其连接到另一个字符串以使其更成功吗?

java casting unique

14
推荐指数
3
解决办法
4万
查看次数

标签 统计

java ×3

android ×1

casting ×1

hash ×1

hashcode ×1

hashmap ×1

string ×1

unique ×1