0

我有两个哈希图。其中每一个都具有与其他哈希图一样的键,如下所示。

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());

注意:inputMessageDbRecord 是类型List<Map<String, Object>>,mapTransactionNumberTranIds 是类型Map<Map<String, Object>, Map<String, Object>>

4

1 回答 1

2

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

本文介绍了有关在 hashmap 中使用对象作为键的问题。

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

于 2013-09-10T07:25:13.117 回答