Javascript’s HashSet Implementation using Hash Map
- 时间:2020-10-11 15:17:18
 - 分类:网络文摘
 - 阅读:97 次
 
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) —
推荐阅读:Social Media, FOMO and Teenage Anxiety Yee’s Appeal Dismissed What Bloggers Can Learn From Halloween Is Tumblr for Bloggers? 3 Excellent Fortune 500 Blogs: What They’re Doing Right Twitter’s New Moments Feature Twitter’s Buy Now Button Shakes Up E-Commerce The Limits of Hashtag Activism How to Start a Podcast on WordPress? Algorithm to Compute the Shortest Distance between Points on Two
- 评论列表
 - 
				
 
- 添加评论