因为Map本身是不可以放相同的key的泹是如果我们想,也是有办法的
另外java也给我们提供了一个钻空子的方法,这就是JDK1.8的IdentityHashMap也是Map的一个实现类
HashMap比较key的值是用equals来比较的,所以只偠key的值一样就会被认为是同一个key。而IdentityHashMap是用==来比较key的存放地址所以,只要我们重新new出来一个对象就可以把值相同的key定义为值相等但地址不相同的key,这样就不会被认为是同一个key
另外HashMap还可以自己重写hashCode和put来实现hashCode的值不一样从而不会被认为是同一个key,继续研究。
发布了22 篇原创文章 · 获赞 3 · 访问量 1万+