使用JsonObject作为键

时间:2016-04-05 15:40:03

标签: java gson

我有HashMap<JsonObject, Integer>,其中JsonObject属于Google的gson库。

我注意到如果你输入一个条目,然后修改JsonObject键(比如添加成员或其他东西),你将无法使用该条目获得条目的值。同样的关键。我怀疑这是因为hashcode的{​​{1}}在您更改其成员时会发生变化。

我不确定这是否是预期的行为,但如果是,那么我对此有任何变通方法感到好奇:我想创建JsonObject {{1}是关键。

1 个答案:

答案 0 :(得分:1)

您认为正确无误。只有一件事是严格的,你推动的密钥不应该是可变的,否则可能无法检索到相同的密钥。所以你需要确保。
  或者IdentityHashMap可能会拯救您,因为平等条件基于==检查,而不是equals()。 既然你告诉hashCode发生变化,我认为地图有责任很好地分配你的对象。您可以稍后考虑性能方面的问题。