2013-01-16 64 views
6

最好的查找结构是HashTable。它提供了平均的恒定访问(在最坏的情况下是线性的)。
这取决于散列函数。好。
我的问题如下。假设很好地实现了例如HashTable,例如HashMap是否有关于在地图中传递的键的最佳做法?我的意思是建议键必须是不可变的对象,但我想知道是否还有其他建议。
示例密钥的大小?例如,如果我们使用String作为键,在一个好的散列表中(以上述方式),在equals(试图找到键)的字符串比较中不会出现“瓶颈”吗?所以钥匙应该保持很小?或者是否有不应该用作键的对象?例如。 a URL?在这种情况下,您如何选择使用什么作为关键?
什么应该是关键在散列表的最佳做法

+10

我想说的主要限制是它必须是你想要查找的东西;) –

+2

一般规则是用作关键字,无论你需要查找什么。在大多数情况下,你不会找到一个更有效的数据结构,而没有太多的工作,所以你不应该为此烦恼太多。 –

+4

密钥的_size_无关紧要。重要的是,它的'hashCode()'计算效率如何。 – jlordo

回答

相关问题