【发布时间】:2015-07-21 07:53:04
【问题描述】:
public boolean isCollide(String key, String value){
int index = key.hashCode();
if (this.key_array[index]==null) return false;
else return true;
}
public void addValue(String key, String value){
Hashtable hashtable = new Hashtable(key,value);
int index = key.hashCode();
if (isCollide(key,value)) {
hashtable.key_array[index]=key;
hashtable.value_array[index]=value;
}
else{
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add(value); //how to create a linkedlist on a hashtable?
}
}
我正在从头开始实现 Hashtable。我想知道如何在哈希表中创建链接列表?上面的代码几乎是错误的,但我希望它可以说明我的想法。因此,如果发生冲突,那么我想从该冲突索引开始创建一个链表。有人可以给我一些指导吗?谢谢!
【问题讨论】:
-
你能告诉我们为什么吗? Java HashMap 在内部(使用树)为您执行此操作。如果你想真正将 List 放入现有的 hashmap 中,则需要将其声明为
HashMap<List<String>>,或者如果你想同时添加两者,则HashMap<Object>(因为String和List没有其他通用接口)。跨度> -
@eckes 对不起,我应该提前说明:我正在从头开始实现一个哈希表,而不使用哈希表、哈希图...再次感谢!
标签: java linked-list hashtable collision