关于map集合,key值相同时,value值会被覆盖,查阅API相关的说明.
如果原来的key已经存在,则直接将新值覆盖到原值上面.
那么问题来了,有时候后台需要我们发送json字符串数组,这时候就需要map集合的key值时相同的,网上找了很多方法,
都是说重写key的hashCode()和map的put()方法,就可以实现对于相同key下多个value的存储.
而我推荐的方法是使用IdentityHashMap.
IdentityHashMap和HashMap之间的区别,根据网友的回复:
穿同样颜色衣服的双胞胎(HashMap)
穿不同颜色双胞胎弟弟(IdentityHashMap)
区别与其他的键不能重复的容器,IdentityHashMap允许key值重复,但是——key必须是两个不同的对象,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。
因此:
IdentityHashMap<String,String> maps = new IdentityHashMap<>();
maps.put("key",value1);
maps.put("key", value2);
maps.put("key", value3);
map.size = 3;
特此记录.
网友评论