Java 比较两个对应于键的映射值
我有以下两张不同的地图,如下所示Java 比较两个对应于键的映射值,java,map,Java,Map,我有以下两张不同的地图,如下所示 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"); mult
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);
如上所示,我取了两个映射的键,然后比较对应于键的值,使其匹配,因为具有相同值的两个不同映射对应于第一个键,所以它应该在控制台上打印语句,说明两个映射具有相同的值,对应于键,如果不是,则应该打印两个映射具有相同的值不同的值对应于键,请建议如何实现这一点。您的陈述有点混乱,两个映射的键1处的值都是列表
multimap1 multimap2
1 abc 1 abc
不正确,因为这些不是键为1的映射的值,它只是值的一部分,因为列表中的其余字符串也是值的一部分
如果要比较两个列表的值,这取决于它们相等的含义。如果它们必须以相同的顺序具有相同的值,那么只需逐个检查两个列表的索引即可。如果它们只需要具有相同的值,且顺序无关紧要,则检查其中一个元素的所有元素是否都在另一个元素中,反之亦然如何使用番石榴:
set.symmetricDifference()
或set.difference()
查找键之间的差异<代码>设置.intersection()以查找公用键HashSet
s或LinkedHashSet
s中,并将set.difference()
应用于包装的集合multimap1 multimap2
1 abc 1 abc
multimap1 multimap2
1 abc 1 abc