如何实现hashmap

how to implement hashmap

本文关键字:hashmap 实现 何实现      更新时间:2024-01-07

我使用hashmap来存储映射的键值对。请建议我,如果他们是使用NOdejs做同样事情的替代方法。

var HashMap=require('hashmap');
var map=new HashMap();
map.set("amit",[1,2]);
map.set("amit",[3,4]);
console.log(map.get("amit"));

在控制台上它打印[3,4],我想要[1,2,4]。我该如何处理这个问题。如果值变量中的值重复,那么我还想增加与相同键对应的值的计数。

每次对该键调用set时,都会覆盖amit键的值。除非hashmap中有某些特定的API支持,否则最好在每个set调用上连接以前的值。

考虑:

var HashMap = require("hashmap")
var map = new HashMap()
map.set('amit', [1,2])
// Concat previous value with [3, 4]
map.set('amit', map.get('amit').concat([3,4]))
console.log(map.get('amit'))
// [1, 2, 3, 4]

您也可以对此进行抽象。下面是一个简单的示例,您很可能希望在实际用例中进一步扩展它。

// concatSet('foo', [1, 2])
// concatSet('foo', [3, 4])
// console.log(map.get('foo')) => [1, 2, 3, 4]
function concatSet(key, value) {
   // empty array if not exists
   var prevValue = map.get(key) || []
   return map.set(key, prevValue.concat(value))
}

您必须循环映射。

map.set(1, "test 1");
map.set(2, "test 2");
map.set(3, "test 3");
map.forEach(function(value, key) {
    console.log(key + " : " + value);
});

https://www.npmjs.com/package/hashmap