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