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.