哈希表中的链表

时间:2011-11-18 18:30:39

标签: java linked-list hashtable

假设我们希望重复搜索长度为N个元素的链表,每个元素都包含一个很长的字符串键。在列表中搜索具有给定键的元素时,我们如何利用哈希值?

5 个答案:

答案 0 :(得分:0)

将密钥插入哈希表。然后你可以在(理论上)搜索恒定时间。

答案 1 :(得分:0)

您需要在搜索列表之前准备好哈希值,并且您需要能够在恒定时间内访问字符串的哈希值。然后你可以先比较哈希值,只比较哈希值匹配时的字符串。您可以使用哈希表而不是链表。

答案 2 :(得分:0)

String(hashCode)的哈希值有点像字符串的id。不完全独特,但通常非常独特。您可以HashMap存储String键及其值。 HashMap,顾名思义,使用字符串的哈希值来有效地存储和检索值。

答案 3 :(得分:0)

不确定你在这里有什么约束(这可能会占用过多的内存,具体取决于字符串的大小),但如果你必须维护链表,你可以创建一个HashMap,将字符串映射到它们在列表中的位置,允许您从列表中检索任意字符串,并进行2次常量操作。

答案 4 :(得分:0)

把它放在HashSet中。搜索算法将使用插入的每个String值的哈希值。