java HashMap如何链接?如何访问所有碰撞值?
发布时间:2020-12-15 05:07:34 所属栏目:Java 来源:网络整理
导读:我在某处读过HashMap使用链接来解决冲突.但如果是这样的话.如何访问具有相同键值的所有元素. 例如 : HashMapInteger,String hmap = new HashMapInteger,String();hmap.put(1,"1st value");hmap.put(1,"2nd value");hmap.put(1,"3rd value");hmap.put(1,"4th
我在某处读过HashMap使用链接来解决冲突.但如果是这样的话.如何访问具有相同键值的所有元素.
例如 : HashMap<Integer,String> hmap = new HashMap<Integer,String>(); hmap.put(1,"1st value"); hmap.put(1,"2nd value"); hmap.put(1,"3rd value"); hmap.put(1,"4th value"); 现在,如果我做hmap.get(1)它返回“第四个值” 如果确实它确实像链接一样
我怎样才能获得其他值? hmap.get(1)仅返回第一个值. 我的第二个问题是, 如果它做线性链接.如何删除键的任何一个值.假设我想从我的hashmap中删除“4th value”并希望保留相同键的所有其他值,我该怎么办? 如果我做
,它删除了完整的链. 解决方法
HashMap无法为同一个键存储多个值.
Chaining用于解决散列冲突,即不同密钥具有相同散列的情况.因此,它不是关于使用相同的键存储多个值,而是关于其键具有相同哈希值的多个值. 可以为同一个密钥存储多个值的数据结构称为多图.不幸的是,JRE中没有内置的multimap实现. 如果您需要多图,则可以维护列表地图(由matsev建议),或使用第三方库中的现有多图实施,例如Google Guava. 也可以看看: > Collision resolution (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |