一个MultiValueMap中的修改影响另一个

时间:2013-08-28 14:07:40

标签: java map

我班上有两个MultiValueMap 这些是MapAMapB。两张地图是平等的。我已经迭代使用MapA并在MapB中进行了一些更改。但它正在影响MapAMapA也在发生变化。为什么会这样。

修改

简单代码

MultiValueMap myMap = new MultiValueMap();
myMap.put("A", "1");
myMap.put("B", "2");

myMap.put("C", "3");

myMap.put("D", "4");

System.out.println("Mymap => "+myMap);
MultiValueMap sec = myMap;

if(myMap.containsKey("A"))
{
    sec.getCollection("A").clear();
    sec.put("A", "11");


}


System.out.println(myMap); // {D=[4], A=[11], B=[2], C=[3]}
System.out.println(sec); // {D=[4], A=[11], B=[2], C=[3]}

2 个答案:

答案 0 :(得分:0)

这几乎可以肯定 - 因为两个地图包含对相同对象的引用。修改对象时,它会自动在两个地图中更改。

答案 1 :(得分:0)

MultiValueMap sec = myMap;不会复制;它使sec引用与MultiValueMap完全相同的myMap