hashcode相关内容

好GetHash code()重写为富对象列表尊重秩序

EnumerableObject:IEnumerable的<富> 包装了一个名单,其中,富> 如果 EnumerableObject a.SequenceEquals(EnumerableObject B),那么他们是平等的。 因此​​, GetHash code 必须执行。问题是异或列表中的每个元素将返回相同的哈希code表示与所有和仅有的相同的元件的任何列表中,不论顺序 ..
发布时间:2015-11-30 14:25:28 C#/.NET

高效的散列code()实现

我经常自动生成一个类的散code()方法使用的IntelliJ IDEA和一般方法的形式为: 的结果= 31 *结果+ ... 我的问题是什么是乘以31的目的是什么?我知道这是一个素数,但为什么挑31具体一点吗?另外,如果实施散code()的特别小/大数据集的人会解决这个问题不同? 解决方案 31乘快,因为JIT可以将其转换为5位向左移位和减法: X * 31 = =(X&LT ..
发布时间:2015-11-30 14:18:44 Java开发

C#散code代表整数数组

我有一个类,它的内部是一个整数只是一个数组。一旦构建了数组永远不会改变。我想pre-计算好的哈希code,使这个类可以非常有效地使用作为一个字典的关键。数组的长度小于约30个项目,以及整数是在一般-1000和1000之间。 解决方案 不是很聪明,但也足够满足大多数实际目的: 编辑:由于亨克Holterman的感谢的意见,改变了的 INT HC = array.Length; 的for(i ..
发布时间:2015-11-30 13:52:20 C#/.NET

快速和简单的哈希code组合

人们可以推荐快速和简单的方法来散列codeS结合了两种对象。我不是太担心碰撞,因为我有一个哈希表,它将处理能够有效地我只想要的东西,快速生成一个code越好。 阅读周围SO和网络似乎有几个主要候选人: 异或 异或与总理乘 在简单的数字像乘法/除法运算(带溢出检查或缠绕) 建立一个String,然后使用String类的哈希code方法 什么人推荐,为什么? 解决方案 我会亲自避免XOR - ..
发布时间:2015-11-30 13:41:12 C#/.NET

举个例子来使用哈希code检测一个名单,其中的一个元素;字符串>改变了C#

我有一个列表,更新基于一些XML元素的LINQ查询的每一分钟。 在xml变化,不时。有人建议,我认为我可以使用哈希code,以确定是否有任何在列表中的字符串已经改变了。 我看到MD5哈希值code计算只是一个字符串的一些例子,而不是一个列表...可能有人告诉我有一个列表这样的一种方式? 我想简单的东西如int测试= list1.GetHash code;但是code是相同的,无论是什么列表. ..
发布时间:2015-11-27 15:02:13 C#/.NET

将非序列化的类字节数组

我有一种情况,我非常多不同的系统之间同步数据。 (数据本身是类似的,但在不同的系统表中有相当不同的格式。)为了帮助此同步,我有一个数据库表,该表存储对象从每个系统的哈希值与项目密钥和其他相关信息。当对象从任一系统变更散列,我更新其他 我的数据库表看起来是这样的。 CREATE TABLE [DBO]。[SyncHashes]( [SyncHashId] [INT] IDENTITY( ..
发布时间:2015-11-26 21:20:52 C#/.NET

是字典损坏或应GetHash上永恒不变的会员code()只有基地?

当一个对象被添加到.NET 借助 GetHash code 的文件说: 在GetHash code方法的对象必须一致地返回相同的散列code,只要没有修改对象的状态,确定对象的equals方法的返回值。 因此​​,根据 GetHash code 文档,散列code可以随时更改的平等 - 确定状态发生变化,但在词典的实施做不支持的。 是当前.NET字典实现破的,因为它错误地忽视了哈希cod ..
发布时间:2015-11-26 21:06:11 C#/.NET

不一致Equals和GetHash code方法

看完这个问题 为sbyte I = 1; INT J = 1; 的Object.Equals(I,J)//假(1) 的Object.Equals(J,I)//假(2) i.Equals(J)//假(3) j.Equals(ⅰ)//真(4) 我==Ĵ//真(5) Ĵ== I //真(6) i.GetHash code()== j.GetHash code()//假(7) (3)和(4)会切断等 ..
发布时间:2015-11-26 16:52:16 C#/.NET

净GetHash code位换档操作

我一直在寻找通过一些.NET源昨天,看到沿此线的东西的GetHash code几种实现方式: (I1<小于5)+ I ^ I2 我明白了code是做什么,为什么。我想知道的是他们为什么使用(I1<小于5)的 + 我来代替(I1<小于5)。 - 我 我见过使用-i,因为这相当于31这是素相乘,但微软的方式相当于33具有11和3相乘的因素,因此不是素数大多数框架。 ..
发布时间:2015-11-26 00:11:26 C#/.NET

为什么2委托实例返回相同的哈希code?

取以下内容: 变种X =新的行动(()=> {Console.Write(“”);}); 变种Y =新的行动(()=> {}); VAR一个= x.GetHash code(); 变种B = y.GetHash code(); Console.WriteLine(A == B); Console.WriteLine(x == y)的; 这将打印: 真 假 ..
发布时间:2015-11-25 23:25:22 C#/.NET

如何区分MethodBase在仿制药

我有一个基于缓存 词典< MethodBase,串> 关键是从MethodBase.GetCurrentMethod呈现。一切工作正常,直到方法进行显式声明。但是有一天它似乎: 方法1< T>(字符串值) 静静地在字典同一条目当T得到完全不同的类型。 所以我的问题是关于更好的方式来为泛型方法的缓存值。 (当然,我可以提供包装,提供GetCache和遇 ..
发布时间:2015-11-25 15:52:17 C#/.NET

哈希code在字典< TKEY的,TValue>

我是玩弄字典和整个以下情形迷迷糊糊 公共类的MyObject { 公共字符串我{获​​得;组; } 公共字符串Ĵ{获得;组; } 公共字符串ķ{获得;组; } 公众覆盖INT GetHash code() { INT散列code =(I + J + K).GetHash code(); Debugger.Log(9,“IN ..
发布时间:2015-11-25 15:49:34 C#/.NET

产生安全散列code为objectgraph

我从文件导入一些数据(XLS,CSV,XML)至极,将导致一个复杂的内存对象图。现在我需要知道这个图是否已被修改,因为它曾经是出口。什么将是一个安全的方法来检查呢?我想我会导出一个哈希code的文件吗?如果是的话会解决方案 我最后做以下(至极似乎工作pretty的好): 创建一个自定义的整数哈希code,其中包括一个对象的所有简单属性使用所有复杂的对象重复1.此对象引用 在一个众所周知的顺序序 ..
发布时间:2015-11-25 15:48:02 C#/.NET

可以object.GetHash code()产生不同的结果在不同的机器相同的对象(字符串)?

是否有可能同一个对象,特别是字符串或任何原始的或者非常简单的类型(如结构),在不同的机器调用时产生的 .GetHash code()方法的不同值? 例如,是否有可能为前pression 的“Hello World”.GetHash code()来产生不同的机器上的一个不同的值。我主要是要求C#.NET,但我想这可能适用于Java,甚至其他语言? 编辑: 正如从答案和下面的评论,这是众所周知的 ..
发布时间:2015-11-25 13:02:13 C#/.NET

一般的建议,并就如何正确地覆盖object.GetHash code指引()

根据 MSDN ,哈希函数必须有以下性质: 如果两个对象的比较结果相等,每个对象的GetHash code方法必须返回相同的值。但是,如果两个对象不比较结果相等,这两个对象GetHash code方法不必返回不同的值。 对于一个对象必须一致地返回相同的散列code,只要没有修改对象的状态,确定对象的equals方法的返回值的GetHash code方法。注意,这是真实的,只有一个应用程序的 ..
发布时间:2015-11-24 20:39:48 C#/.NET

转换System.Decimal到的System.Guid

我有一个大的字典,其中最关键的是小数,但System.Decimal的GetHash code()是disasterously坏。为了证明我的猜测,我跑了一个for循环100.000 neigboring小数,并检查了分布。使用100.000不同的十进制数只有2个(二!!!)不同的h​​ash codeS。 十进制重新psented为16字节$ P $。就像的Guid!但是的Guid的GetHa ..
发布时间:2015-11-24 20:16:31 C#/.NET

如何计算好的哈希code字符串列表?

背景: 在我有串短名单。 串的数量并不总是相同的,但是一个“少数”的顺序的几乎总是 在我们的数据库中会存储这些字符串在第二规范化表 在这些字符串是永远更改一旦被写入到数据库中。 我们希望能够在这些字符串快速查询中的匹配没有做大量的连接的性能损失。 所以,我想存储所有这些字符串的哈希值code。在主表和包括在我们的索引,所以联接只能由数据库处理时散列code匹配。 那么,如何才能获得一个好的 ..
发布时间:2015-11-24 16:04:56 C#/.NET

如何创建在.net中(C#)一个Hash code的字符串,它是安全的存储在数据库中?

从准则和规则GetHash code报价通过埃里克利珀: 规则:的GetHash code,消费者不能依靠它是稳定的时间或跨应用程序域 假设你有一个客户对象 有一帮像名称字段, 处理,等等。如果你做两个 这些对象具有完全相同 在两个不同的处理数据,它们 不必返回相同的哈希 code。如果您对这样一个对象 周二在一个进程,将其关闭, 并再次运行程序 周三,散列codeS可以 不同的。 这已 ..
发布时间:2015-11-24 14:21:10 C#/.NET

在C#中GetHash code指引

我在本质C#3.0和.NET 3.5图书阅读: GetHash code()结束了一个特定的对象的生命周期回报率应该是 常数(相同值),即使该对象的数据的变化。在许多 的情况下,你应该缓存的方法返回强制执行这一点。 这是一个有效的指导? 我已经试过内置的.NET类型一对夫妇和他们并没有这样的表现。 解决方案 答案大多是,它是一个有效的准则,但也许不是一个有效的规则。它也不会告诉整个故 ..
发布时间:2015-11-24 11:58:48 C#/.NET

什么是一个重写的System.Object.GetHash code最好的算法?

在.NET System.Object.GetHash code 方法是用在很多地方,在整个.NET基础类库。尤其是发现当一个集合的项目快速或确​​定的平等。是否有关于如何贯彻落实 GetHash code 重写我的自定义类,所以我不降低性能标准算法/最佳做法? 解决方案 我经常去的东西,如在乔希布洛赫的神话般的的有效的Java 。它的快速和创建pretty的好的哈希是不会引起冲突。选择两个不 ..
发布时间:2015-11-24 10:55:55 C#/.NET