java - 比较 Java 中的 2 个 HashMap

标签 java hashmap

我有以下方法,我想比较2个HashMap : map 1和 map 2。

每个 HashMap 都有:

键:字符串。

value: ArrayList<String>

我想做的是检查两个 HashMap 是否相等

    public boolean compareT(HashMap map1, HashMap map2) {

        Iterator entriesH = map1.entrySet().iterator();
        Iterator entriesE = map2.entrySet().iterator();

        if (map1.size() == map2.size()) {
            while (entriesE.hasNext() && entriesH.hasNext()) {
                Map.Entry eEntry = (Map.Entry) entriesE.next();
                Map.Entry hEntry = (Map.Entry) entriesH.next();
            }
        }
}

编辑

以下映射应返回 TRUE:

map1: 
key: key1, value: v1, v6, v3, v2 
key: key2, value: b1, b6, b2, b7


map2:  
key: key1, value: v6, v3, v2, v1  
key: key2, value: b6, b1, b7, b2

最佳答案

Should i order the values of every key before i compare them?

您的值是 ArrayList 对象。 ArrayList(或任何其他 List 实现)仅在具有相同顺序的相同条目时才被视为相等。

也许你可以使用某种java.util.Set来代替。

关于java - 比较 Java 中的 2 个 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859523/

相关文章:

Java 关闭 Hook

JavaFX8 - 从不同线程引用 FXML 对象

java - 我的 EmployeeStore 中的 MainApp 出现错误

java - 如何将自定义java对象添加到HashTable

java - 如何将 HashMap.getKey() 转换为 Int

java - 如果池已满则忽略线程

java - 我的 ArrayList 未按 Collections.sort() 排序

java - javafx tableview中的倒计时器

java - HashMap 中的平均跳数

android - Guava :java.lang.NoClassDefFoundError - com.google.common.collect.HashBiMap