- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Mapの扱いについて)
Java1.3でMapを使用したプログラムでの結果不一致の原因
このQ&Aのポイント
- Java1.3でMapを使用したプログラムで、特定の結果が期待通りにならない問題が発生しています。要素の格納や更新の手順が誤っている可能性があります。
- 結果が一部の要素だけでなくすべての要素に反映されているため、キーの値を正しく取得できていない可能性があります。
- 問題の原因を特定するには、プログラムの他の部分やデータの初期化、ループの処理などを確認する必要があります。デバッガを使用してステップ実行しながら変数の値を確認することをおすすめします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
map.put("あああ",hoge); map.put("いいい",hoge); map.put("ううう",hoge); map.put("えええ",hoge); map.put("おおお",hoge); どのキーも、同じオブジェクトを参照しているからです。 "あああ"も"いいい"も、その他どのキーも全て同じ String[] 型の'hoge'というオブジェクトの参照を値として持っています。 putする際に全部改めてnewすればこの問題は起こらなくなります。 hoge = new String[4]; hoge[0]=0; hoge[1]=1; hoge[2]=0; hoge[3]=0; map.put("あああ",hoge); hoge = new String[4]; hoge[0]=0; hoge[1]=1; hoge[2]=0; hoge[3]=0; map.put("いいい",hoge); : :
お礼
迅速に回答をいただきありがとうございます。 回答の通りにnewをするように変更した所、思っていた通りの動きになりました。 本当にありがとうございました。