一部のクラスを格納するために 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 が更新されます。(実際にはカウンターも同じです)putステートメントを次のように変更してみました
map.put(i, new MyClass (myClass));
無駄に。HashMap は myClass のコピーを作成して保存するのではなく、メモリ内のコンテンツを参照しているように感じます。myClass を再作成して毎回再作成したくない場合、これを防ぐ方法はありますか。私のループで 'Clone' を使用するのは見苦しく聞こえます。
ティア