code: @SuppressWarnings("unchecked")
      public V get(Object key) {
          Object k = maskNull(key);
          Object[] tab = table;
          int len = tab.length;
          int i = hash(k, len);
          while (true) {
              Object item = tab[i];
              if (item == k)
                  return (V) tab[i + 1];
              if (item == null)
                  return null;
              i = nextKeyIndex(i, len);
          }
      }
docs: Returns the value to which the specified key is mapped,
  or {@code null} if this map contains no mapping for the key.
  
  <p>More formally, if this map contains a mapping from a key
  {@code k} to a value {@code v} such that {@code (key == k)},
  then this method returns {@code v}; otherwise it returns
  {@code null}.  (There can be at most one such mapping.)
  
  <p>A return value of {@code null} does not <i>necessarily</i>
  indicate that the map contains no mapping for the key; it's also
  possible that the map explicitly maps the key to {@code null}.
  The {@link #containsKey containsKey} operation may be used to
  distinguish these two cases.
  
  @see #put(Object, Object)