0

我的班级中有两个 MultiValueMap
MapAMapB。两张地图相等。我已经迭代使用MapA并在MapB. 但它正在影响MapA. MapA也在发生变化。为什么会发生。

编辑

简单代码

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]}
4

2 回答 2

0

MultiValueMap sec = myMap;不复制;它使引用sec完全相同。MultiValueMapmyMap

于 2013-08-28T15:58:53.257 回答
0

这几乎肯定会发生,因为这两个映射包含对相同对象的引用。当您修改对象时,它会在两个映射中自动更改。

于 2013-08-28T14:09:32.483 回答