【发布时间】:2015-09-05 00:53:45
【问题描述】:
我有 2 个 HashMap 如下:
@Session
private Map< Integer, List< ObjectA >> keyMap;
@Session
private Map< Integer, List< ObjectA >> keyMap2;
一开始我会在keyMap里面放一些数据,然后我试着把keyMap里面的数据存到keyMap2里面:
keyMap2 = keyMap;
然后,我将在keyMap 中编辑一些数据。但是,keyMap2 中的值会随着我在keyMap 中的编辑而改变。
据我了解,这是因为keyMap2 仅指向keyMap 指针,所以keyMap 中的任何更改都会反映在keyMap2 中,因为相同的指针。 (如果我错了,请纠正我。)
我希望保留keyMap2 的值,而不需要像keyMap 这样的更改。除了我循环 keyMap 并将 1 比 1 放入 keyMap2 之外的任何想法。
【问题讨论】:
-
keyMap2 = new HashMap<>(keyMap). -
嗨@saka1029,这对我不起作用。我想可能是我的 HashMap 里面包含了一个列表。我并对
keyMap的列表进行更改