有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java比较两个不同映射的键值

比较两个不同映射的键值

我有以下两张不同的地图,如下所示

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

各位朋友,请建议解决方案,因为我被困在比较,任何帮助将不胜感激,提前感谢


共 (2) 个答案

  1. # 1 楼答案

    如果我没弄错,你想在另一个列表对象值中搜索一个地图列表对象值

    map或list都不关心排序,不应该使用list迭代器来获取对象和比较。如果你确定地图索引在两个地图之间是唯一的,那么 执行以下操作:

    1. 从两个贴图中获取索引为1的对象。然后获取第一个_list_对象(通过迭代器)值,然后执行:

      second_list.contains(first_list_object)
      
    2. 然后对first_list

  2. # 2 楼答案

    现在还不完全清楚你在问什么。如果我理解正确,那么您需要检查multimap1中的列表是否与multimap2中的列表相同(相等)

    如果是这样的话,那么您需要理解,在multimap的1键上,该值实际上不是“abc”,而是列表的一个对象

    multimap1

    Key   Value
     1    List<String>{"abc", "def", "ght"}
    

    如果您想测试这两个列表是否包含相同的元素——并且顺序相同——只需使用

    multimap1.get(1).equals(multimap2.get(1));