Sobes.tech
Junior — Middle

HashMap içinde aynı hash değerine sahip öğelerin organizasyonu nasıl gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da, HashMap'teki aynı hash değerine (çakışmalar) sahip öğeler, bağlı liste şeklinde veya Java 8 ve sonrası sürümlerde çok sayıda çakışma varsa dengeli ağaç (TreeNode) şeklinde organize edilir.

Birden fazla anahtar aynı hash koduna sahipse, bunlar bir "kova"ye (bucket) yerleştirilir. Başlangıçta, kovadaki tüm öğeler tek bağlı liste ile ilişkilidir. Eğer bir kovadaki öğe sayısı belirli bir eşiği (genellikle 8) aşarsa, liste, arama verimliliğini artırmak için kırmızı-siyah ağaca dönüştürülür.

Basitleştirilmiş yapı örneği:

static class Node<K,V> implements Map.Entry<K,V> {
    final int hash;
    final K key;
    V value;
    Node<K,V> next;
    // ...
}

Bu şekilde, çakışmalarda, HashMap önce anahtar üzerinden liste veya ağaçta öğeyi arar, anahtarları equals() ile karşılaştırır.