我处于这样一种情况,即我想要一个带有Integer值作为键的哈希映射和一个Double as值数组(我知道它的长度)。 所以我想要像
这样的东西 HashMap<Integer, Double[]> hash = new HashMap<Integer, Double[]>();
接下来,我扫描ResultSet,找到第一个属性的键,值。 在第一阶段结束时,我将有一个带有一些键的哈希映射,对于每个键,我将有一个表示特定分数的Double值。
接下来,我想使用不同的键,值扫描另一个不同的ResultSet,我想用这些值填充哈希值。 问题是,在这里我可以找到我没有条目的元素和我已经有条目的文件。
我想到达一种情况,在这种情况下,我可以访问所有不同的分数。
如何向这些数组添加迭代值?因为如果我使用通常的hash.put(key,value)
我必须使用Double []作为值,但我想迭代地将不同的分数添加到哈希映射中。
我认为使用Vector可能会给我带来一些问题,因为某些键可能会有一些空值,而这些值不会被填充。
答案 0 :(得分:0)
我不确定我对你的要求有多了解。我想你可能会做点什么:
double[] arrayInMap = hash.get(key);
if (arrayInMap == null) {
hash.put(key, valuesToAdd);
} else {
if (arrayInMap.length != valuesToAdd.length) {
throw new IllegalStateException("Key "+ key + ": cannot add " + valuesToAdd.length
+ " values to array of length " + arrayInMap.length);
}
for (int ix = 0; ix < arrayInMap.length; ix++) {
arrayInMap[ix] += valuesToAdd[ix];
}
}
我希望你至少能够将它作为灵感来使用。