【发布时间】:2011-03-25 13:59:12
【问题描述】:
我有一个 Map 对象,每次更新地图时,它的值都会不断变化。它们的键始终相同,但值会发生变化。每次更改 Map 对象时,都会将其添加到 ArrayList。我可以看到,每次将新地图添加到 ArrayList 时,地图中的值都是不同的,但是当 ArrayList 完成更新并准备好从中读取时,其中的所有 Map 都是相同的。
谁能想到为什么会这样?
这基本上就是所有正在发生的事情......UpdateLog 被一个新的 Map 调用了大约 20 次,每个 dataMap1 对象都是不同的。它被添加到 ArrayList。当我调试时,我可以看到 dataMap1 的值每次都不一样。但是完成后,mapLog中的每个dataMap1对象都是一样的!!
public void UpdateLog(final Map<String,String> dataMap1)
{
mapLog.add(dataMap1);
}
【问题讨论】: