2

キーが整数で、値が double の配列である HashMap があります。

HashMap<Integer, double[]> map = new HashMap<>();

double 配列の特定のインデックスの値を変更するにはどうすればよいですか?

これを行う 1 つの方法は、必要なキーの double 配列を取得し、それを一時配列にコピーし、一時配列内の必要なインデックスを変更してから、同じキーに対して配列をマップに配置することです。つまり、

double temp[] = map.get(i);

温度[10] = 3.142;

map.put(i、temp);

しかし、より良い実装が必要ですよね?

4

2 に答える 2

2

ここに誤解があります。あなたの答えはすでにほぼ正しいものですが、あなたが思っているよりも優れています。 double[] temp = map.get(i)コピーを作成しませ。同じ配列への参照を返します。そう

double[] temp = map.get(i);
temp[j] = 42.0;

あなたがやりたいことはすでにやっています。

于 2013-03-18T03:37:27.983 に答える
1

これでうまくいくはずです...問題の説明について私が誤解したことがない限り:

HashMap map = new HashMap<Integer, double[]>();
...
doubles = map.get(i);
doubles[j] = 42.0;
于 2013-03-18T03:13:10.993 に答える