Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较两个对应于键的映射值_Java_Map - Fatal编程技术网

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()以查找公用键
  • 如果symmetric difference为空,则迭代公共密钥。如果顺序重要,则将列表包装到
    HashSet
    s或
    LinkedHashSet
    s中,并将
    set.difference()
    应用于包装的集合
  • 1不应该分别映射到“abc、def、ght”和“abc、wed、ght”吗?
    multimap1       multimap2
    
    1   abc         1  abc
    
    multimap1       multimap2
    
    1   abc         1  abc