标签: hashcode

重写System.Object.GetHashCode的最佳算法是什么?

在.NET GetHashCode方法中,很多地方都使用.NET 方法.特别是在快速查找集合中的项目或确定相等性时.是否有关于如何GetHashCode为我的自定义类实现覆盖的标准算法/最佳实践,因此我不会降低性能?

.net algorithm hashcode gethashcode

1389
推荐指数
14
解决办法
19万
查看次数

为什么在重写Equals方法时重写GetHashCode很重要?

鉴于以下课程

public class Foo
{
    public int FooId { get; set; }
    public string FooName { get; set; }

    public override bool Equals(object obj)
    {
        Foo fooItem = obj as Foo;

        if (fooItem == null) 
        {
           return false;
        }

        return fooItem.FooId == this.FooId;
    }

    public override int GetHashCode()
    {
        // Which is preferred?

        return base.GetHashCode();

        //return this.FooId.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经覆盖了该Equals方法,因为它Foo代表了Foos表的一行.哪个是覆盖的首选方法GetHashCode

覆盖为什么重要GetHashCode

c# overriding hashcode

1371
推荐指数
13
解决办法
35万
查看次数

如何生成MD5哈希?

是否有任何方法可以在Java中生成字符串的MD5哈希?

java hash md5 hashcode

977
推荐指数
27
解决办法
99万
查看次数

617
推荐指数
11
解决办法
57万
查看次数

如何确定两个JavaScript对象的相等性?

严格的相等运算符将告诉您两个对象类型是否相等.但是,有没有办法判断两个对象是否相等,就像 Java中的哈希码一样

Stack Overflow问题JavaScript中是否有任何类型的hashCode函数?类似于这个问题,但需要更多的学术答案.上面的场景说明了为什么需要有一个,我想知道是否有任何等效的解决方案.

javascript equals object hashcode

599
推荐指数
23
解决办法
45万
查看次数

为什么我需要覆盖Java中的equals和hashCode方法?

最近我读了这个 Developer Works文档.

该文档是关于定义hashCode()equals()有效和正确的,但我无法弄清楚为什么我们需要覆盖这两种方法.

如何有效地实施这些方法?

java equals hashcode

355
推荐指数
15
解决办法
39万
查看次数

集合的hashCode方法的最佳实现

我们如何决定hashCode()集合方法的最佳实现(假设equals方法已被正确覆盖)?

java hash equals hashcode

292
推荐指数
9
解决办法
23万
查看次数

如何获取覆盖hashCode()的对象的唯一ID?

当Java中的类不覆盖hashCode()时,打印此类的实例会给出一个很好的唯一编号.

对象的Javadoc说关于hashCode():

尽可能合理,Object类定义的hashCode方法确实为不同的对象返回不同的整数.

但是当类重写hashCode()时,我怎样才能获得它的唯一编号?

java identity hashcode

224
推荐指数
6
解决办法
19万
查看次数

Java HashMap如何使用相同的哈希代码处理不同的对象?

根据我的理解,我认为:

  1. 两个对象具有相同的哈希码是完全合法的.
  2. 如果两个对象相等(使用equals()方法),则它们具有相同的哈希码.
  3. 如果两个对象不相等,则它们不能具有相同的哈希码

我对么?

现在,如果我是正确的,我有以下问题:HashMap内部使用对象的哈希码.因此,如果两个对象可以具有相同的哈希码,那么它如何HashMap使用它所使用的键?

有人可以解释HashMap内部如何使用对象的哈希码吗?

java hash-function hashmap hashcode

205
推荐指数
9
解决办法
20万
查看次数

为什么在hashCode中使用素数?

我只是想知道为什么在类的hashCode()方法中使用素数?例如,当使用Eclipse生成我的hashCode()方法时,总会使用素数31:

public int hashCode() {
     final int prime = 31;
     //...
}
Run Code Online (Sandbox Code Playgroud)

参考文献:

这是关于Hashcode的一篇很好的入门文章和关于我如何找到哈希工作的文章(C#但概念是可转移的): Eric Lippert的GetHashCode指南和规则()

java primes hashcode

160
推荐指数
4
解决办法
6万
查看次数