public V get(int key) {
      Node<V>[] tab; Node<V> e, p; int n, eh;
    int h = spread(key);
      if ((tab = table) != null && (n = tab.length) > 0 &&
          (e = tabAt(tab, (n - 1) & h)) != null) {
          if ((eh = e.hash) == h) {
              if (e.key == key)
                  return e.val;
          }
          else if (eh < 0)
              return (p = e.find(h, key)) != null ? p.val : null;
          while ((e = e.next) != null) {
              if (e.hash == h &&
                  (e.key == key))
                  return e.val;
          }
      }
      return null;
  }
public V get(int key)