现在的位置: 首页 > 综合 > 正文

GetHashCode 方法 并不能保证值唯一

2011年06月27日 ⁄ 综合 ⁄ 共 304字 ⁄ 字号 评论关闭

我在做分词模块时,对每个词分配hashcode,但是发现其值并非唯一;
比如 "公出"和"古色"这两个词得到的值都是 6237203.

为什么会出现这样的问题呢,其实在MSDN里面有解释:

备注

GetHashCode 的行为取决于它的实现,此实现可能会从一个公共语言运行库版本更改为另一个版本。原因可能是为了提高 GetHashCode 的性能。如果要求 GetHashCode 的行为不变,请使用您自己的、确定不会改变的实现来重写 GetHashCode 的运行库实现。

没错就是因为他为了优化速度,所以使用了不同的算法,导致了同一值的出现,解决方案就如他说得,自己写一个固定算法了.

各位兄弟,以前如果用了这个方法,可就得改一改了.

【上篇】
【下篇】

抱歉!评论已关闭.