我正在获取Map< String,List>来自ehcache的对象.我不想更新Map对象,而是想将缓存的Map的内容复制到临时Map中.如何创建Map的副本,以便更改主Map中的值也不会更改副本中的值.
解决方法:
这真的取决于你想做什么.如果你只需要一份浅色的副本,保罗的答案就足够了,或者做以下事情
Map<String, Object> fromEhcache = ...
Map<String, Object> copy = new HashMap<String, Object>(fromEhcache);
但是,如果需要深层复制,即需要复制地图中的所有对象,则必须迭代整个地图,并单独复制每个对象.另外,地图中的对象必须支持某种复制构造函数.