public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
Quello che sapevo è, se si vuole ottenere un oggetto da HashMap
, prima di tutto cerca il secchio hash basato sul codice hash/valore di hash e quindi scorre la LinkedList
in quel hashbucket (supponiamo gli oggetti diff hanno lo stesso codice hash, quindi nello stesso bucket hash).HashMap utilizza LinkedList internamente
Ma dopo aver guardato il codice di cui sopra, non sono in grado di capire quando esegue un'iterazione LinekedList (e dove è il LinkedList)