Sobes.tech
Junior — Middle

Java dilinde HashMap'in iç yapısı ve çalışma prensiplerini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da HashMap, anahtar-değer çiftlerini depolamak için kullanılan ve anahtar üzerinden hızlı erişim sağlayan bir veri yapısıdır.

İç yapı:

  • HashMap, bir bucket dizisi (kova dizisi) kullanır.
  • Anahtar için bir hash kodu (hashCode) hesaplanır ve bu, dizi indeksine dönüştürülür.
  • Her kovada, aynı indekse sahip öğeler genellikle bağlı liste veya ağaç şeklinde saklanır (Java 8 ile, çok sayıda çakışma durumunda).

Çalışma:

  • Bir nesne eklerken, anahtarın hash'i kullanılarak indeks hesaplanır.
  • Eğer kova boşsa, öğe oraya yerleştirilir.
  • Eğer kova doluysa, anahtarların eşitliği (equals) kontrol edilir, değeri güncellemek veya yeni bir öğe eklemek için.
  • Anahtar ile arama yaparken de indeks hesaplanır ve kovanın içindeki öğeler taranır.

Örnek:

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5

Bu şekilde, HashMap ortalama erişim süresi O(1) sağlar, ancak çok sayıda çakışma olursa O(n) seviyesine düşebilir.