java - HashMap 和类

标签 java hashmap

我正在尝试使用 HashMap 来存储一些类。 这是我的简化代码的 View 。

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);
}

每当我到达最后一条语句时,另一个计数器就会更新映射中的所有条目。 (实际上柜台也一样) 我尝试将 put 语句更改为

map.put(i, new MyClass (myClass));

无济于事。 我的感觉是,HashMap 不会创建 myClass 的副本来存储它,而是查看其在内存中的内容。如果我不想重新创建 myClass 并每次重新填充它,有没有办法防止这种情况。 在我的循环中使用“克隆”听起来很难看。

TIA

最佳答案

您一遍又一遍地将相同的对象放入映射中 - 将 MyClass 声明移动到循环内。

关于java - HashMap 和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965317/

相关文章:

java - DefaultClientConnection 自动关闭

java - 如何选择使用哪个构造函数以及Class<?>类型属于哪个类

Java,当我将用户放入 map 时,它不起作用

java - 什么是 lub(null, Double)?

Java:将 StreamResult 转换为 DOM

java - Java中不可靠网络使用哪种消息服务

java - 在 android webview 中阻止视频 - shouldInterceptRequest() 的替代方法

Java 遍历 HashMap<?, List<?>> 并为每个 Key 计算 Key 有多少个 Values

java - 对象列表到 Hashmap

javascript - 关联数组中的双索引