是否有任何理由不能使用hashCode方法测试Java字符串的相等性?所以基本上,而不是....
"hello".equals("hello")
Run Code Online (Sandbox Code Playgroud)
你可以用......
"hello".hashCode() == "hello".hashCode()
Run Code Online (Sandbox Code Playgroud)
这很有用,因为一旦字符串计算了它的哈希码,那么比较一个字符串就像比较一个int一样有效,因为字符串缓存了哈希码,而且很可能字符串在字符串池中,如果你设计它办法.
我想实现一种散列技术,C其中字符串的所有排列都具有相同的散列键.
例如abc,cab两者都应该有相同的键.
我曾经想过加入的ascii价值观和然后检查frequency of characters[重要,否则都abc与aad本来这是我们不希望相同的密钥.
但是,它看起来效率不高.
是否有更好的散列函数可以很好地解决冲突并且不会导致稀疏哈希表?
Java [ for strings]在内部使用哪种散列技术,不仅可以最大限度地减少冲突,而且操作[ insertion ,deletion, search]也足够快?