Sobes.tech
Junior — Middle

HashMap veri yapısında anahtar çarpışmasının ne anlama geldiğini ve bununla nasıl başa çıktığını açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

HashMap'te anahtar çarpışması (hash collision), farklı iki anahtarın hash fonksiyonunu hesapladığında aynı indeks değerini vermesi durumudur.

HashMap bununla nasıl başa çıkar:

  • Java'da HashMap, aynı kovaya düşen birkaç öğeyi depolamak için bağlı listeler (linked lists) veya dengeli ağaçlar (balanced trees) kullanır.
  • Yeni bir öğe eklerken, anahtarın hash değeri zaten var olanla çakışıyorsa, yeni öğe bu kovadaki zincire eklenir.
  • Anahtar aranırken, HashMap zincirdeki öğeleri dolaşır ve doğru anahtarı bulmak için equals() metodunu kullanır.

Java 8'den itibaren, zincir çok uzun hale gelirse, bu zincir dengeli bir ağaca (TreeNode) dönüştürülür, bu da arama performansını O(n) dan O(log n) a yükseltir.