V (Object key) { Entry<K, V>[] table = this.table; int hash = hashKey((K)key); int index = hash % table.length; for (Entry<K, V> e = table[index]; e != null; e = e.hashNext) { final K entryKey; if (e.keyHash == hash && ((entryKey = e.key) == key || hashingStrategy.isEqual(entryKey, (K)key))) { moveToTop(e); return e.value; } } return null; }