为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们遇到过这个问题吗?哈希冲突用链表解决冲突,返回哪个元素?万分感谢

大佬们遇到过这个问题吗?哈希冲突用链表解决冲突,返回哪个元素?万分感谢

哔哔one 2019-08-21 18:09:19
在解决哈希冲突时有一种方法叫链地址法,就是把相同key的value用链表串起来。那么,当用这些相同的key取值时,会得到这个链表,可是链表里有多个值,要返回哪一个值给用户?
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

finalNodegetNode(inthash,Objectkey){
Node[]tab;Nodefirst,e;intn;Kk;
if((tab=table)!=null&&(n=tab.length)>0&&
(first=tab[(n-1)&hash])!=null){
if(first.hash==hash&&//检查第一个Node是否性相等
((k=first.key)==key||(key!=null&&key.equals(k))))
returnfirst;
if((e=first.next)!=null){
if(firstinstanceofTreeNode)
//红黑树中查找
return((TreeNode)first).getTreeNode(hash,key);
do{
//链表查找
if(e.hash==hash&&
((k=e.key)==key||(key!=null&&key.equals(k))))
returne;
}while((e=e.next)!=null);
}
}
returnnull;
}
源码是通过hash和equals比较返回的
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 449 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信