当前位置: 首页 > 知识库问答 >
问题:

获取hashmap的方法,因为另一个hashmap总是返回空值

戚繁
2023-03-14

我有两个哈希图。其中每一个都有键,就像下面的hashmap一样。

Map<Map<String, Object>, Map<String, Object>>

此映射由DB2数据库查询输出的值填充。我注意到,即使我有两个这样的hashmap,并且如果我尝试检索hashmap键的值,它也总是返回null。我通过在监视窗口中添加所有需要的变量进行了检查。我觉得一切都很好。

我的代码的一小部分。

mapTransactionNumberTranIds
                .put(inputMessageDbRecord
                        .get(i)
                        .get(prop.getProperty(
                                BloombergConstants.INPUT_BBR_TRANS_NO).toString())
                        .toString(),
                        inputMessageDbRecord
                                .get(i)
                                .get(prop.getProperty(
                                        BloombergConstants.TRAN_ID)
                                        .toString()).toString());

注意:inputMessageDbRecords的类型是List


共有1个答案

岳池暝
2023-03-14

您还必须了解,只有当您具有用于添加和从映射中检索的完全相同的对象实例时,该键才会起作用,并且该键不允许永远更改,因为比较将使用equals()和hashCode()检查该键是否为相同的实例。

本文描述了在hashmap中使用对象作为键的相关问题。

您面临的问题很可能与这些需求有关。

 类似资料:
  • 我有一个HashMap,一个键作为某个类的对象,一个值作为另一个HashMap,它的键是一个字符串,值是一个双倍: 我需要一个循环,将键(对象)和值(HashMaps)添加到这个HashMap,但我不能在循环中创建一个新的HashMap变量作为它的值。本质上,每个MyClass对象都必须具有具有相应Double的Strings。 这可能吗?这有什么意义吗??

  • 我正在尝试为HashMap实现装饰器设计模式。 我有两个装饰器-“UpperCaseHashMap”和“AddHashMap”。 实施1:- 然而,结果映射仅包含其中一个装饰器的效果,例如:- > 仅AddHashMap效果,即结果为-{AA=AA} map map=new AddHashMap<>(new UpperCaseHashMap<>(new HashMap<>()));Map.Add(

  • 下面是HashMap中包含的值 获取第一个键(即活动键)的Java代码 我们如何收集第一个键“值”(即33),我想把“键”和“值”都存储在单独的变量中。

  • 我有一个散列表 这是我的代码 我应该对我的代码做什么样的修改来确保它能按照我的要求编译和运行?

  • 我有一个包含通过构造函数创建的对象的hashmap。这些对象在hashmap中 我有一个比较两个数组的函数。一个数组是手动创建的,但第二个数组是通过一个方法创建的。我只需要来自HashMap的值。 我被这种方法困住了... 如果取出.toArray(),将得到一个“无法从集合 转换为brick” 如果将.toArray()更改为.toString(),则会得到一个“无法从String转换为bric

  • 我正在Java开发一个纸牌游戏,我试图比较hashMap中的键和ArrayList中的元素(两者都是对象)。hashCode()和equals()被重写,但出现了一个错误,我不确定它的哪一部分是错误的。 这是纸牌课 我们要做的比较 错误:点击查看错误图片