代码如下:
IdentityHashMap<String,String> maps = new IdentityHashMap<>();
maps.put(new StringBuilder("张三").toString(),"123");
maps.put(new StringBuilder("李四").toString(),"1235");
maps.put(new StringBuilder("王五").toString(),"123434");
maps.put(new StringBuilder("赵柳").toString(),"胜多负少会计法");
maps.put(new StringBuilder("张三").toString(),"232342353");
return maps;
我想通过不去重复的map,将同样key,不同value的map集合返回给前端,但是在返回的途中出现了问题,当我使用浏览器直接访问网址时,返回的是我想要的集合,但是通过potMan和实际页面调用时,返回的值确实进过去重后的map。
Service截图:从下面的截图中可以看到,maps中已经存储进入了五个不同的键值(请忽略StringBuilder,经过测试,new String,String.toString返回值都和上面描述的情况一致)
Controller: 依旧有五个值
下面会放出postMan和页面直接调用的情况。
postMan:这个张三的值会变动,可能是123,也可能是232342353
网页截图:
以上就是问题原因及现象。
-------------------------- 2018年9月12日 更新 -------------------------
确认应该是json会自带去重效果,即一串json中不会拥有重复的key。
解决方式:将返回值用数组的形式,或者将key值修改为不重复。