Sobes.tech
Junior — Middle

HashMap veri yapısının nasıl uygulandığını ve öğelere hızlı erişimi nasıl sağladığını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

HashMap, anahtar-değer çiftlerini saklayan ve anahtar aracılığıyla değerlere hızlı erişim sağlayan bir veri yapısıdır. Anahtarın hash koduna göre öğelerin yerleştirildiği bir bucket dizisine dayanır.

Bir çift eklerken, anahtarın hash kodu hesaplanır ve buna göre bucket indeksi belirlenir (genellikle dizinin boyutuna göre kalan alma işlemiyle). Eğer bucket'ta zaten öğeler varsa (çakışma), bunlar bağlı liste veya ağaç şeklinde saklanır (Java'nın yeni sürümlerinde).

Bir anahtar kullanarak öğe ararken, şu adımlar izlenir:

  • Anahtarın hash kodunun hesaplanması
  • Bucket'ın belirlenmesi
  • Aynı hash koduna sahip öğeler arasında equals kullanılarak arama

Bu, ortalama erişim karmaşıklığını O(1) sağlar, ancak çok sayıda çakışma durumunda (kötü durumda) O(n) seviyesine düşebilir. Bunu önlemek için, belirli bir yük oranına (load factor) ulaşıldığında dizi boyutu artırılır.