set(key, value) {
    const { entry: exists, bucket } = this.getEntry(key);

    if (!exists) { // key/value doesn't exist <1>
      bucket.push({ key, value, order: this.keysTrackerIndex });
      this.keysTrackerArray[this.keysTrackerIndex] = key; // <4>
      this.keysTrackerIndex += 1;
      this.size += 1;
      if (bucket.size > 1) { this.collisions += 1; } // <3>
      if (this.isBeyondloadFactor()) { this.rehash(); }
    } else {
      // update value if key already exists
      exists.value = value; // <2>
    }
    return this;
  }
Insert a key/value pair into the hash map.
If the key is already there replaces its content.
Avg. Runtime: O(1). In the case a rehash is needed O(n).
@param {any} key
@param {any} value
@returns {HashMap} Return the map to allow chaining