我在做分词模块时,对每个词分配hashcode,但是发现其值并非唯一;
比如 "公出"和"古色"这两个词得到的值都是 6237203.
为什么会出现这样的问题呢,其实在MSDN里面有解释:
备注
GetHashCode 的行为取决于它的实现,此实现可能会从一个公共语言运行库版本更改为另一个版本。原因可能是为了提高 GetHashCode 的性能。如果要求 GetHashCode 的行为不变,请使用您自己的、确定不会改变的实现来重写 GetHashCode 的运行库实现。
没错就是因为他为了优化速度,所以使用了不同的算法,导致了同一值的出现,解决方案就如他说得,自己写一个固定算法了.
各位兄弟,以前如果用了这个方法,可就得改一改了.
程序猿们,我也跟风开了网店,主要经营土特产,云南核桃,四川正宗土鸡蛋。有需要的就支持一下小店哈 七彩山川美食(http://qcsc.taobao.com)