问题描述
- 如何进行多层map的比较
- 有两个map 分别为map1 {1={2=33=4}};map2 {1={3=42=3}},我要比较这两个map,认为他们是相等的,该如何比较呢? 在线急等!!!
解决方案
你应该是要比较内容而不是对象,第一在map给值的时候就进行记录并判断,第二利用for拉出来比较,第三等其他高手解答
解决方案二:
Map<String Map<String String>> map = new HashMap<String Map<String String>>(); Map<String String> map2 = new HashMap<String String>(); map2.put(""3""4""); map2.put(""2""3""); map.put(""1"" map2); //第二个map Map<String Map<String String>> maps = new HashMap<String Map<String String>>(); Map<String String> maps2 = new HashMap<String String>(); maps2.put(""3""4""); maps2.put(""2""3""); maps.put(""1"" maps2); if(map.get(""1"").get(""3"").equals(maps.get(""1"").get(""3""))&&map.get(""1"").get(""2"").equals(maps.get(""1"").get(""2""))){ System.out.println(""ok""); }
解决方案三:
Map<String Map<String String>> map = new HashMap<String Map<String String>>(); Map<String String> map2 = new HashMap<String String>(); map2.put(""3""4""); map2.put(""2""3""); map.put(""1"" map2); //第二个map Map<String Map<String String>> maps = new HashMap<String Map<String String>>(); Map<String String> maps2 = new HashMap<String String>(); maps2.put(""3""4""); maps2.put(""2""3""); maps.put(""1"" maps2); if(map.get(""1"").get(""3"").equals(maps.get(""1"").get(""3""))&&map.get(""1"").get(""2"").equals(maps.get(""1"").get(""2""))){ System.out.println(""ok""); }
解决方案四:
ELER算法,你玩jsp的时候那些ELER标签是不是觉得用的很爽呀,里面很多算法呢,如果你想学回复一下。
解决方案五:
如果是hashmap,可以直接用equals方法,如果是treemap,可以转成json。json的tostring方法可以自动排序,在用equals方法。(这个方法在两个map完全一致或是只是顺序不同可用)
时间: 2024-12-28 16:51:39