HashMap içindeki öğeler bir dizi bağlantılı liste (düğüm) olarak saklanır, dizideki her bağlantılı liste bir veya daha fazla anahtarın benzersiz karma değeri için bir grubu temsil eder.
HashMap'e bir giriş eklerken, anahtarın hashcode'u, dizideki grubun konumunu belirlemek için kullanılır, örneğin:
location = (arraylength - 1) & keyhashcode
Burada &, bitsel VE operatörünü temsil eder.
Örneğin: 100 & "ABC".hashCode() = 64 (location of the bucket for the key "ABC")
Alma işlemi sırasında, anahtar için kepçe konumunu belirlemek için aynı yolu kullanır. En iyi durumda, her anahtarın benzersiz bir hashcode'u vardır ve her anahtar için benzersiz bir grupla sonuçlanır, bu durumda get yöntemi yalnızca grup konumunu belirlemek ve O (1) sabiti olan değeri almak için zaman harcar.
En kötü durumda, tüm anahtarlar aynı hash koduna sahiptir ve aynı kovada saklanır, bu da O (n) 'ye yol açan tüm liste boyunca geçişe neden olur.
Java 8 söz konusu olduğunda, eğer boyut 8'den fazla büyürse Bağlantılı Liste grubu bir TreeMap ile değiştirilir, bu durum en kötü durum arama verimliliğini O (log n) olarak azaltır.