java - 从 ParameterMap 对象创建哈希

标签 java hash

我有 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/

相关文章:

java - 如何使用 Feign 框架添加 JSON 形式的 URL 参数?

java - Libgdx 使用 glClearColor 调暗屏幕

php - 在Smarty模板引擎中执行MD5函数

c++ - 什么是整数对的快速哈希函数?

java - 使用java更改mysql数据库中的tinyint(1)数据类型

java - swing中的页面管理

java - Issue detecting PCSCvia program on linux, 读卡器已连接

android - 客户端上的 Bcrypt 哈希密码与服务器密码不匹配

mysql - 为什么在oracle中引入散列分区?有什么好处

perl - 在 Perl 中,散列和祝福引用之间的根本区别是什么?