Java Map添加不同的key后前面添加的都会被覆盖

首先说答案:被覆盖了。

为什麼被覆盖呢不废话,直接上IdentityHashMap中的put方法源码:

可以看到IdentityHashMap其实是一个object数组,他的键和值相邻的放在数组中在调用put方法时,首先会遍历数組找到有没有与即将插入的y==的y值,没有则在i位存入y在i+1位存入value(其中还涉及到扩容的问题,这里不做讨论)并且modCount++(键值对计数)。如果有则替换当前位置的value。

接下来先来看这样一段有趣的程序

他的输出结果是什么呢

(mmp,本来想截图的结果图片上传不清晰)

只有y==相等才詓替换。为什么yy1,y2 equals相等但是==不等呢这又涉及到String构造的问题。后面又是什么String常量池等一大堆的概念

略略略,不想写了题主自己百度吧

开个玩笑,我们还是要多读源码的看看技术大佬们是怎么敲代码还是很有好处的。

(知乎处女答睡觉觉咯)

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

自定义的map,当y存在的时候,把value放入对应的list, 不会覆盖

谢谢我在这个问题上闯鬼了, 其实我也不想问这种超低级的问题的 确实有点闯鬼, 因为现在这个问题在我这以前是问题 现在没问题了。
谢谢我在这个问题上闯鬼叻, 其实我也不想问这种超低级的问题的 确实有点闯鬼, 因为现在这个问题在我这以前是问题 现在没问题了。

下载百度知道APP抢鲜体驗

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 key2 的文章

 

随机推荐