重写equals的哈希映射(Override Equals for Hashmap)

2019-10-30 02:53发布

我是HashMap,如何覆盖等于该HashMap的方法?

谢谢。

Answer 1:

如果你愿意,你可以这样做:

HashMap<String, String> map = new HashMap<String, String>(){
    @Override
    public boolean equals(Object o) {
        // TODO comparison here
        return super.equals(o);
    }
};
map.equals(new HashMap<String, String>());


Answer 2:

在HashMap中已经equals()方法是overrriden.If要覆盖对象类的equals()方法的Eclipse快捷键 - > Alt + Shift + S + V

选择就OK了equals方法点击。



Answer 3:

你需要做的一类自己的延伸的Hashmap

public class NewHashMap<K,V> extends HashMap<K, V>

并覆盖在equals方法

@Override
public boolean equals(Object o) {
    // Your code
}

祝好运



Answer 4:

或者更好的是,让一个单独的方法的地方比较您想要的特定包含HashMap。 例如:

public class HashMapComparator {
    boolean static areMapsEqual(HashMap<String, String> aMap, HashMap<String, String> bMap) {
        ....
    }
}

然后使用它:

boolean mapsAreEqual = HashMapComparator.areMapsEqual(firstMap, secondMap);

虽然你应该知道,这是如果你想用你的一个不正确的解决方案equals方法搜索或分类这些包含HashMap的名单时。 我假设情况并非如此。



文章来源: Override Equals for Hashmap