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.