Javascript’s HashSet Implementation using Hash Map
- 时间:2020-10-11 15:17:18
- 分类:网络文摘
- 阅读:75 次
Design a HashSet without using any built-in hash table libraries.
To be specific, your design should include these functions:
add(value): Insert a value into the HashSet.
contains(value) : Return whether the value exists in the HashSet or not.
remove(value): Remove a value in the HashSet. If the value does not exist in the HashSet, do nothing.Example:
1 2 3 4 5 6 7 8 9 MyHashSet hashSet = new MyHashSet(); hashSet.add(1); hashSet.add(2); hashSet.contains(1); // returns true hashSet.contains(3); // returns false (not found) hashSet.add(2); hashSet.contains(2); // returns true hashSet.remove(2); hashSet.contains(2); // returns false (already removed)MyHashSet hashSet = new MyHashSet(); hashSet.add(1); hashSet.add(2); hashSet.contains(1); // returns true hashSet.contains(3); // returns false (not found) hashSet.add(2); hashSet.contains(2); // returns true hashSet.remove(2); hashSet.contains(2); // returns false (already removed)
Javascript’s Set
The ECMAScript (ECMA-262) has provided a Set class (Hash Set). The Set is easy to use in Javascript. The following are some examples:
1 2 3 4 5 6 | let data = new Set(); data.add(1); data.add(2); data.delete(2); data.has(2); // false; data.size; // 1 |
let data = new Set(); data.add(1); data.add(2); data.delete(2); data.has(2); // false; data.size; // 1
Using Javascript’s Hash Map to Implement the Hash Set
As a matter of fact, we can use the inbuilt support of the hash map {} object in Javascript to implement a Hash Set.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | /** * Initialize your data structure here. */ var MyHashSet = function() { this.data = {}; }; /** * @param {number} key * @return {void} */ MyHashSet.prototype.add = function(key) { this.data[key] = true; }; /** * @param {number} key * @return {void} */ MyHashSet.prototype.remove = function(key) { delete this.data[key]; }; /** * Returns true if this set contains the specified element * @param {number} key * @return {boolean} */ MyHashSet.prototype.contains = function(key) { return typeof this.data[key] !== "undefined"; }; /** * Your MyHashSet object will be instantiated and called as such: * var obj = new MyHashSet() * obj.add(key) * obj.remove(key) * var param_3 = obj.contains(key) */ |
/** * Initialize your data structure here. */ var MyHashSet = function() { this.data = {}; }; /** * @param {number} key * @return {void} */ MyHashSet.prototype.add = function(key) { this.data[key] = true; }; /** * @param {number} key * @return {void} */ MyHashSet.prototype.remove = function(key) { delete this.data[key]; }; /** * Returns true if this set contains the specified element * @param {number} key * @return {boolean} */ MyHashSet.prototype.contains = function(key) { return typeof this.data[key] !== "undefined"; }; /** * Your MyHashSet object will be instantiated and called as such: * var obj = new MyHashSet() * obj.add(key) * obj.remove(key) * var param_3 = obj.contains(key) */
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:食品安全蓝皮书发布 解读2012食品问题 购买保健食品要认准“蓝帽子”标志 食品安全问题公众和媒体也有话语权 初春食补:胡椒根对症食疗祛除寒湿 纯天然食品与绿色食品有何区别 铝瓜子事件提醒食品安全检测应扩容 香港限奶令实施掀新一轮水货攻防战 健康饮食四字诀:一鲜二咸三厚四甜 电脑族健康饮食要注意八个方面 饮食安全:隔夜食物危害到底有多大?
- 评论列表
-
- 添加评论