我班上有两个MultiValueMap
这些是MapA
和MapB
。两张地图是平等的。我已经迭代使用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]}
答案 0 :(得分:0)
这几乎可以肯定 - 因为两个地图包含对相同对象的引用。修改对象时,它会自动在两个地图中更改。
答案 1 :(得分:0)
MultiValueMap sec = myMap;
不会复制;它使sec
引用与MultiValueMap
完全相同的myMap
。