对唯一 ID 使用哈希码
我正在一个基于java的系统中工作,我需要为视觉显示中的某些元素设置一个id。元素的一个类别是字符串,所以我决定使用 String.hashCode() 方法来获取这些元素的唯一标识符。
然而,我遇到的问题是,如果id为负数并且经常返回负值,那么我在borks中工作的系统。一个快速的解决方案是在哈希码调用周围使用Math.abs()来保证积极的结果。我对这种方法的疑问是,两个不同的元素具有相同的哈希码的可能性有多大?String.hashCode
例如,如果一个字符串返回 -10 的哈希码,而另一个字符串返回的哈希码 10,则会发生错误。在我的系统中,我们谈论的对象集合通常不超过30个元素,所以我认为这不会是一个问题,但我很好奇数学是怎么说的。