hashtable 一个键多个值 getValue()

sshber 2014-08-04 01:02:11
一个hashtable中,若有key是多个value的,那么把这个key 的所有value 都存在一个linked list 里面。
我想问,那么现在如果我用getValue(Object key), 而这个key是有多个value的,那么这个方法返回的是一个value还是一个linked list? 如果返回的是一个value, 那么是哪个value呢?
...全文
876 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
skgary 2014-08-08
  • 打赏
  • 举报
回复
楼主一定是搞混了理论上的hash表和jdk中hashtable的实现。 只有数据结构课上面才会教你这些个冲突检测,但实际上JDK用的时候完全不需要考虑hash值冲突之后的检测问题。
grapepaul 2014-08-08
  • 打赏
  • 举报
回复
Hashtabled的hash()是有可能出这种问题的,不同key相同value时,后一次put的value值会把前一次的value覆盖掉,所以只会返回最后一个value。 HashMap的hash()会好很多,如果可以的话换了试试。
doer_ljy 2014-08-07
  • 打赏
  • 举报
回复
哈希算法怎么可能是同一个Key对应多个Value呢? 那样的话是覆盖而不是存成什么LinkList 除非自己实现这个功能。 另外Hashtable没有getValue方法, 楼主从哪里得到这些想法的?
zy_think123 2014-08-04
  • 打赏
  • 举报
回复
键值对?你知道什么是这样的吗?不存在一个键对应多个值,只有多个键对应相同的值才是可能的,添加的时候,如果键相同,那么不可能添加进去的
血饮 2014-08-04
  • 打赏
  • 举报
回复
key 有多个value ??是要说 可不可以是重复的吗??
rumlee 2014-08-04
  • 打赏
  • 举报
回复
在一个hashtable中,不存在一个key对应多个value的问题,如果两个对象的equals方法返回true,则会认为是相同的对象,在一个hashtable中是不能有两个equals返回true的key的。 我觉得你的意义可能是两个对象的hashcode值相同,这样两个key对应的对象是存在一个linklist中的,但是通过get方法获取的时候,首先是通过hashcode定位,然后再通过equals遍历的。
markcxz 2014-08-04
  • 打赏
  • 举报
回复
返回linked list,例如: Hashtable<String,List<String>> table=new Hashtable<String,List<String>>(); List<String> value=table.get("key");

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧