我有 Container 类的对象 X 和 Y。 两者都与 ParameterMap 对象相关联,该对象是一个映射 String-String(请求参数值)。 设:
X exampleX;
Y exampleY;
我想知道 exampleX 是否与 exampleY 关联相同的 ParameterMap。 因为我并不真正需要映射的值,所以我认为我可以在类 Container 中存储一个整数,即与对象关联的参数映射的哈希函数的结果。 因此,如果 X.parameterMapHash == Y.parameterMapHash,则映射对于相同的键具有相同的值......
这是一个好方法吗?我怎样才能在java中做到这一点?我需要一些东西来从对象中生成哈希...
最佳答案
您可以使用==
来确定两个变量是否引用同一个对象。
if (X.parameterMapHash == Y.parameterMapHash)
{
//they reference the same object
//doSomething
}
但是,如果您询问如何确定两个 Map
是否完全等效,但不一定引用同一对象,那么您可以执行以下操作:
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;
}
关于java - 从 ParameterMap 对象创建哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659258/