V (long 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; }