Sobes.tech
Junior — Middle

Vysvetlite, čo znamená kolízia kľúčov v dátovej štruktúre HashMap a ako s týmto problémom naloží.

sobes.tech AI

Odpoveď od AI

Kolízia kľúčov (hash collision) v HashMap nastáva, keď dve rôzne kľúče pri výpočte hash funkcie dávajú rovnakú hodnotu indexu pre uloženie v poli.

Ako s tým HashMap pracuje:

  • V Jave HashMap používa reťazce (prepojené zoznamy alebo vyvážené stromy) na uloženie viacerých prvkov, ktoré spadnú do toho istého koša.
  • Pri pridávaní nového prvku s kľúčom, ktorého hash sa zhoduje s existujúcim, sa nový prvok pridá do reťazca tohto koša.
  • Pri hľadaní kľúča HashMap prechádza prvky v reťazci a porovnáva kľúče metódou equals(), aby našiel správny.

Od Javy 8, ak sa reťazec stane príliš dlhým, je prevedený na vyvážený strom (TreeNode), čo zlepšuje výkon hľadania z O(n) na O(log n).