2

我有一个 HashMap ,其中键是整数,值是双精度数组,即

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

如何更改双精度数组中特定索引的值?

一种方法是获取所需键的双精度数组,将其复制到临时数组,修改临时数组中所需的索引,然后将数组放入映射中,对于相同的键,即

双温度[] = 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 回答