0

我有容器类的对象 X 和 Y。两者都与 ParameterMap 对象相关联,这是一个映射字符串字符串(请求参数值)。让:

X exampleX;
Y exampleY;

我想知道 exampleX 是否与 exampleY 相同的 ParameterMap 相关联。因为我真的不需要地图的值,我想我可以在类容器中存储一个整数,哈希函数的结果到对象关联的参数映射。因此,如果 X.parameterMapHash == Y.parameterMapHash,则映射对于相同的键具有相同的值....

这是一个好方法吗?我怎样才能在java中做到这一点?我需要一些东西来从一个对象做一个哈希......

4

1 回答 1

1

您可以使用==来确定两个变量是否引用同一个对象。

if (X.parameterMapHash == Y.parameterMapHash)
{
    //they reference the same object
    //doSomething
}

但是,如果您要问如何确定两个Maps是否完全等价,但不一定要引用同一个对象,那么您可以执行以下操作:

boolean checkKeysAndValues()  
{  
    if(X.parameterHashMap.size() == Y.parameterHashMap.size())
    {
        for (Map.Entry<String, String> entry : X.parameterHashMap.entrySet())
        {
            if (!(Y.ParameterHashMap.containsKey(entry.getKey()) &&
                Y.ParameterHashMap.get(entry.getKey()).equals(entry.getValue()))
            {            
                return false;
            }
        }
        return true;
    }
    return false;
}
于 2013-07-15T16:38:17.177 回答