Sobes.tech
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.