在Java中,当它是HashMap的值时,更改数组的特定值

时间:2013-03-18 03:09:20

标签: java arrays indexing hashmap

我有一个HashMap,其中Key是一个整数,值是一个double的数组,即

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

如何更改double数组中特定索引的值?

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

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

temp [10] = 3.142;

map.put(I,温度);

但是,必须有更好的实施,对吗?

2 个答案:

答案 0 :(得分:2)

这里有一种误解。你的答案几乎是正确答案,但它比你想象的要好。 double[] temp = map.get(i) 制作副本:它会将引用返回到同一个数组。所以

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

做你想做的事。

答案 1 :(得分:1)

这应该可以解决问题......除非你的问题描述中有一些我误解了:

HashMap map = new HashMap<Integer, double[]>();
...
doubles = map.get(i);
doubles[j] = 42.0;