Junior — Middle
Java dilində HashMap-in daxili quruluşu və işləmə prinsipi haqqında izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da HashMap, açar-dəyər cütlərini saxlamaq üçün məlumat quruluşudur və açar vasitəsilə sürətli giriş təmin edir.
Daxili quruluş:
- HashMap, bir kova array-dən istifadə edir.
- Açar üçün hashCode hesablanır və sonra bu, array indeksinə çevrilir.
- Hər bir kovada, eyni indeksə sahib elementlər adətən əlaqəli siyahı və ya ağac şəklində saxlanılır (Java 8 ilə, çox sayda toqquşma olduqda).
İş prinsipi:
- Bir obyekt əlavə edilərkən, açarın hash-ə əsasən indeks hesablanır.
- Əgər kova boşdursa, element ora yerləşdirilir.
- Əgər kova doludursa, açarların bərabərliyi (equals) yoxlanılır, dəyəri yeniləmək və ya yeni element əlavə etmək üçün.
- Açar ilə axtarışda da indeks hesablanır və kovanın içindəki elementlər yoxlanılır.
Nümunə:
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5
Beləliklə, HashMap ortalama giriş vaxtını O(1) təmin edir, lakin çox sayda toqquşma olarsa, O(n)-ə qədər pisləşə bilər.