Sobes.tech
Junior — Middle

HashMap məlumatlar strukturunda açarların toqquşmasının nə demək olduğunu və bununla necə başa çıxdığını izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

HashMap-də açarların toqquşması (hash collision) baş verir ki, iki fərqli açar hash funksiyasını hesablayanda eyni indeks dəyərini verir.

HashMap bununla necə məşğul olur:

  • Java-da HashMap, eyni kovaya düşən bir neçə elementi saxlamaq üçün zəncirlər (linked lists və ya balanslı ağaclar) istifadə edir.
  • Yeni element əlavə edilərkən, onun açarının hash dəyəri mövcud olanla üst-üstə düşürsə, yeni element həmin kovanın zəncirinə əlavə olunur.
  • Açar axtarışında, HashMap zəncirdəki elementləri gəzərək, açarları equals() metodu ilə müqayisə edir və düzgün olanı tapır.

Java 8-dən etibarən, əgər zəncir çox uzun olarsa, o, balanslı ağaca (TreeNode) çevrilir və bu, axtarış performansını O(n) -dən O(log n) -ə yüksəldir.