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