Java-更改HashMap中的值

Java-更改HashMap中的值,java,hashmap,Java,Hashmap,我有这样一个HashMap:HashMap CustomClass有许多属性,使其具有意义上的唯一性。我需要能够使用CustomClass的新实例更新映射中已有的键的值。然后我需要调用一个名为“CustomClass.clearInfo()”的方法,该方法将相应地清除所有属性的值 问题是“Put”方法只是将值的引用更改为引用新实例,因此当我调用clearnfo()时,哈希值也会被清除 我需要在调用clearInfo()之前保留这些值。您可以使用HashMap.remove(key)方法删除对象。

我有这样一个HashMap:
HashMap

CustomClass有许多属性,使其具有意义上的唯一性。我需要能够使用CustomClass的新实例更新映射中已有的键的值。然后我需要调用一个名为“CustomClass.clearInfo()”的方法,该方法将相应地清除所有属性的值

问题是“Put”方法只是将值的引用更改为引用新实例,因此当我调用clearnfo()时,哈希值也会被清除


我需要在调用clearInfo()之前保留这些值。

您可以使用
HashMap.remove(key)
方法删除对象。然后,您可以将新对象放入刚刚删除的密钥中


请参阅文档以了解

我无法理解这个问题。发布代码,告诉我们您期望它是什么,以及它的功能。CustomClass的散列是不相关的,因为它没有用作映射的键。让我简化这个问题。如何在Java中进行深度复制而不必使用复制构造函数或单独设置每个属性?@BladeHal如何制作深度复制,如果您不单独设置每个属性?我想问的是,Java框架中是否有不必手动执行的方法?@BladeHal不在Java系统库中。请注意
remove(K键)
的返回类型。有了它,您可以编写:
hashMap.remove(oldKey.clearnfo();put(newKey,newCustomClass)