向量的Java HashMap

时间:2016-09-17 15:11:16

标签: java arrays hashmap hashtable

我处于这样一种情况,即我想要一个带有Integer值作为键的哈希映射和一个Double as值数组(我知道它的长度)。 所以我想要像

这样的东西
        HashMap<Integer, Double[]> hash = new HashMap<Integer, Double[]>();

接下来,我扫描ResultSet,找到第一个属性的键,值。 在第一阶段结束时,我将有一个带有一些键的哈希映射,对于每个键,我将有一个表示特定分数的Double值。

接下来,我想使用不同的键,值扫描另一个不同的ResultSet,我想用这些值填充哈希值。 问题是,在这里我可以找到我没有条目的元素和我已经有条目的文件。

我想到达一种情况,在这种情况下,我可以访问所有不同的分数。

如何向这些数组添加迭代值?因为如果我使用通常的hash.put(key,value)我必须使用Double []作为值,但我想迭代地将不同的分数添加到哈希映射中。

我认为使用Vector可能会给我带来一些问题,因为某些键可能会有一些空值,而这些值不会被填充。

1 个答案:

答案 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];
        }
    }

我希望你至少能够将它作为灵感来使用。