我有一个 HashMap ,其中键是整数,值是双精度数组,即
HashMap<Integer, double[]> map = new HashMap<>();
如何更改双精度数组中特定索引的值?
一种方法是获取所需键的双精度数组,将其复制到临时数组,修改临时数组中所需的索引,然后将数组放入映射中,对于相同的键,即
双温度[] = map.get(i);
温度[10] = 3.142;
map.put(i,temp);
但是,必须有更好的实现,对吧?
这里有一个误解。您的答案已经接近正确,但比您想象的要好。 double[] temp = map.get(i)
不复制:它返回对同一数组的引用。所以
double[] temp = map.get(i);
temp[j] = 42.0;
做你想让它做的事情。
这应该可以解决问题......除非我误解了您的问题描述:
HashMap map = new HashMap<Integer, double[]>();
...
doubles = map.get(i);
doubles[j] = 42.0;