IdentityHashMap处理HashMap无法存放相同Key的随记
天方夜谭的想法,如何在一个Map中存入相同的Key生成存值多个相同节点的XML。如图:
解决方式如下:
HashMap的存放值示例
网上有很多文章说在进行存值的时候使用 hashMap.put(new String(“name”),“李四”);可以将相同的Key存入Map,实际操作后如下:
public static void main(String[] args) {
Map<String,Object> hashMap = new HashMap<>();
hashMap.put(“name”,“张三”);
hashMap.put(new String(“name”),“李四”);
hashMap.put(new String(“name”),“王五”);
System.out.println(hashMap);
}
以上代码输出为:
{name=王五}
演示代码截图如下:
IdentityHashMap实现方式记录
话不多说,代码如下:
public static void main(String[] args) {
//最外层map
Map<String,Object> retMap = new IdentityHashMap<>();
//request层map
Map<String,Object> map = new IdentityHashMap<>();
map.put(new String(“name”),“张三”);
Map<String,Object> map2 = new IdentityHashMap<>();
map2.put(“lover”,“李宇春”);
map2.put(“sex”,“女”);
map.put(new String(“datil”),map2);
map.put(new String(“name”),“李四”);
Map<String,Object> map3 = new IdentityHashMap<>();
map3.put(“lover”,“李铁锤”);
map3.put(“sex”,“男”);
map.put(new String(“datil”),map3);
//head层map
retMap.put(“head”, null);
retMap.put(“body”,map);
System.out.println(retMap);
String mapToXmlStr = XmlUtil.mapToXmlStr(retMap, “request”);
System.out.println(mapToXmlStr);
}
输出效果如下:
格式化输出后:
其中XmlUtil使用的是hutool中的转换工具类;hutool配置信息为:
就实现了这个奇怪的想法啦!搬砖的少年们。