【发布时间】:2018-09-05 19:59:26
【问题描述】:
我有一个看起来像这样的用例:
Map<String,String> pr = new HashMap<>();
pr.put("ab","ab");
pr.put("xy","xy");
Map<String,String> prNew = new HashMap<>();
prNew = pr;
prNew.remove("ab");
System.out.println(pr);
System.out.println(prNew);
这是我得到的输出:
{xy=xy}
{xy=xy}
但我希望 'pr' 保持为:
{ab=ab, xy=xy}
看起来 prNew 引用了 pr,对 prNew 的任何修改也会修改 pr。
那么我该如何解决这个问题?在我的用例中,我需要复制 pr 并进行一些更改,但它不应影响原始 pr。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
您想要复制您的地图,而不仅仅是分配它。 HashMap 已经有一个可以使用的复制构造函数:
prNew = new HashMap<>(pr); -
这不是“看起来像” ==> 是!
标签: java collections