java hashmap怎么遍历冲突的部分

比如put(1,"a");put(2,"b");put(2,"c");普通遍历的话只能得到a和c,我现在想遍历出a,b,c,请问~... 比如
put(1,"a");
put(2,"b");
put(2,"c");
普通遍历的话只能得到a和c,我现在想遍历出a,b,c,请问~
展开
 我来答
空白了的思念
2014-06-13 · TA获得超过104个赞
知道答主
回答量:34
采纳率:0%
帮助的人:25.8万
展开全部
大家都知道map的key值是不可以重复的,重复会覆盖哦。
不过你的问题有个取巧的方法,就是不用int数字做key,而是新建string对象做key,这样内存地址不同的话,是可以重复的。
Map map = new IdentityHashMap();
map.put(new String("1"), "a");
map.put(new String("1"), "b");
System.out.println(map);
输出{1=a, 1=b}。
补充,其实用 IdentityHashMap的话,不用string,new Integer新建对象也是可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wysung
2014-06-13 · TA获得超过250个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:161万
展开全部
HashMap 的Key值是不能重复的,所以不管怎么遍历,都不会把c遍历出来的,或者您把c的Key换成3,那就可以了
追问

key值冲突的时候不是把value存到一个链里了么,不是直接覆盖啊

追答

它会把原来的覆盖的,Key -- Value ,肯定是一对一的,不可能一对多的呀

可以参与一下以下HashMap的源码


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-06-13
展开全部
你的key相同啊,相同的key会覆盖啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式