Junior — Middle
HashMap ichida bir xil hash qiymatiga ega elementlarning tashkiloti qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Java'da, HashMap'da aynı hash dəyərinə (kəsişmələr) sahib elementlər, əlaqəli siyahı şəklində və ya Java 8-dən başlayaraq çox sayda kəsişmə olduqda balanslaşdırılmış ağac (TreeNode) şəklində təşkil edilir.
Bir neçə açar eyni hash koduna malikdirsə, onlar "kova"ya (bucket) yerləşdirilir. Əvvəlcə, bütün elementlər kovanın içində sadə əlaqəli siyahı ilə əlaqələndirilir. Əgər bir kovadakı elementlərin sayı müəyyən bir həddi (adətən 8) aşarsa, siyahı axtarışın effektivliyini artırmaq üçün qırmızı-qaranlıq ağaca çevrilir.
Sadələşdirilmiş struktur nümunəsi:
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
// ...
}
Beləliklə, kəsişmələr zamanı, HashMap əvvəlcə açar vasitəsilə siyahı və ya ağacda elementi axtarır, açarları equals() ilə müqayisə edir.