比较两个不同地图的关键值
我有以下两个不同的地图,如下所示..
Map<Integer, List<String>> multimap1 = new HashMap<Integer, List<String>>();
List<String> someList1 = new ArrayList<String>();
someList1.add("abc");
someList1.add("def");
someList1.add("ght");
multimap1.put(1, someList1);
另一个是......
Map<Integer, List<String>> multimap2 = new HashMap<Integer, List<String>>();
List<String> someList = new ArrayList<String>();
someList2.add("abc");
someList2.add("wed");
someList2.add("ght");
multimap2.put(1, someList2);
现在请告知逻辑,因为我想要比较两个地图的值,并对应于我先取钥匙的钥匙 来自multimap1的第一张地图,也将从multimap2获取第一个键,然后比较它们的值
multimap1 multimap2
1 abc 1 abc
伙计们请建议解决方案,因为我被困在比较中,任何帮助将不胜感激,提前致谢
答案 0 :(得分:2)
你在这里要问的并不完全清楚。如果我理解正确,那么你想检查multimap1中的列表是否与multimap2中的列表相同(等于)。
如果是这种情况,那么您需要了解该值实际上不是多图的1键的“abc”,而是List的对象;
<强> multimap1 强>:
Key Value
1 List<String>{"abc", "def", "ght"}
如果你想测试两个列表是否包含相同的元素 - 并且顺序相同 - 只需使用
multimap1.get(1).equals(multimap2.get(1));
答案 1 :(得分:1)
如果我找到你,你想在另一个列表对象值中搜索一个地图列表对象值。
map或list不关心排序,你不应该使用list iterator来获取对象和比较。如果你确定地图索引在两个地图之间是唯一的那么 执行以下操作:
从两个地图中获取索引为1的对象。然后获取first_list_object(通过迭代器)值,然后执行:
second_list.contains(first_list_object)
然后为first_list