gpt4 book ai didi

java - HashMap 中具有不同键的相同值

转载 作者:行者123 更新时间:2023-11-29 07:19:17 26 4
gpt4 key购买 nike

最初我将两个具有相同值的条目放入 HashMap 中。这两个条目的值本身就是一个映射。这些条目具有不同的键。

现在我想将新值放入第一个条目的映射(值)中。问题是,只要我更改第一个条目,第二个条目的映射(其值)也会更改。这两个不同的键以某种方式引用相同的值(映射)。

我应该怎么做才能将最初相同的值彼此分开编辑?

最佳答案

基本上,问题在于您没有将两个 map 放入您的 map 中,而是将两个引用放入相同 map 。

要在外部 map 中有两个独立版本的内部 map ,您需要在第二次放入之前复制它。

您应该能够使用 clone 方法制作 HashMap 的副本。请注意,虽然这确实为您提供了两个不同的 map ,但两个 map 中的实际值是相同的。这意味着如果复制的 map 的内容是可变的并且您更改了它们,它们仍然会在两个地方发生变化。

澄清一下:

HashMap<Object, Object> map1 = new HashMap<Object, Object>()// This is your original map.
map1.put("key", mutableObject)
HashMap<Object, Object> map2 = map1.clone();
map2.put("something", "something else");// map1 is unchanged
map2.get("key").change();// the mutable object is changed in both maps.

关于java - HashMap 中具有不同键的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com