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.