Class MyHashSet

java.lang.Object
g0701_0800.s0705_design_hashset.MyHashSet

public class MyHashSet extends java.lang.Object
705 - Design HashSet.

Easy

Design a HashSet without using any built-in hash table libraries.

Implement MyHashSet class:

  • void add(key) Inserts the value key into the HashSet.
  • bool contains(key) Returns whether the value key exists in the HashSet or not.
  • void remove(key) Removes the value key in the HashSet. If key does not exist in the HashSet, do nothing.

Example 1:

Input

 ["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "remove", "contains"]
 [ [], [1], [2], [1], [3], [2], [2], [2], [2]]

Output: [null, null, null, true, false, null, true, null, false]

Explanation:

 MyHashSet myHashSet = new MyHashSet(); 
 myHashSet.add(1); // set = [1] 
 myHashSet.add(2); // set = [1, 2] 
 myHashSet.contains(1); // return True 
 myHashSet.contains(3); // return False, (not found) 
 myHashSet.add(2); // set = [1, 2] 
 myHashSet.contains(2); // return True 
 myHashSet.remove(2); // set = [1] 
 myHashSet.contains(2); // return False, (already removed)

Constraints:

  • 0 <= key <= 106
  • At most 104 calls will be made to add, remove, and contains.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int key)
     
    boolean
    contains(int key)
     
    void
    remove(int key)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • MyHashSet

      public MyHashSet()
  • Method Details

    • add

      public void add(int key)
    • remove

      public void remove(int key)
    • contains

      public boolean contains(int key)