Junior — Middle
Objasnite šta znači sudar ključeva u strukturi podataka HashMap i kako se sa tim nosi.
sobes.tech АИ
Одговор од АИ
Сукоб кључева (hash collision) у HashMap-у се дешава када два различита кључа при израчунавању хеш функције дају исту вредност индекса за чување у низу.
Како се са тим носи HashMap:
- У Јави, HashMap користи ланце (повезане листе или балансиране дрвеће) за чување више елемената који падну у исти кофер.
- При додавању новог елемента са кључем чији хеш се поклапа са постојећим, нови елемент се додаје у ланац тог кофера.
- При претрази кључа, HashMap пролази кроз елементе у ланцу, поређујући кључеве методом equals() да би пронашао прави.
Од Java 8, ако ланац постане превише дугачак, он се претвара у балансирано дрво (TreeNode), што побољшава перформансе претраге са O(n) на O(log n).