我正在尝试使用 HashMap 来存储一些类。这是我的简化代码的视图。
HashMap<Integer, MyClass> map = new HashMap<Integer, MyClass>
MyClass myClass = new MyClass();
for (int i = 0; i<MAX;i++){
myClass.counter=i;
map.put(i, myClass);
myClass.modifySomeInternalParameters(i);
myClass.anotherCounter+(i*2);
}
每当我到达最后一条语句时,anotherCounter 都会针对 Map 中的所有条目进行更新。(实际上与计数器相同)我尝试将 put 语句更改为
map.put(i, new MyClass (myClass));
无济于事。我感觉 HashMap 并没有创建 myClass 的副本来存储它,而是查看它在内存中的内容。如果我不想重新创建 myClass 并每次都重新填充它,有没有办法防止这种情况发生。在我的循环中使用“克隆”听起来很丑。
TIA