Junior — Middle
Обяснете какво означава сблъсък на ключове в структурата данни HashMap и как се справя с това.
sobes.tech AI
Отговор от AI
Колизия на ключове (hash collision) в HashMap се случва, когато два различни ключа при изчисляване на хеш функцията дават еднаква стойност на индекса за съхранение в масива.
Как HashMap се справя с това:
- В Java, HashMap използва вериги (свързани списъци или балансирани дървета) за съхраняване на няколко елемента, които попадат в една и съща кофа.
- При добавяне на нов елемент с ключ, чийто хеш съвпада с вече съществуващ, новият елемент се добавя към веригата на тази кофа.
- При търсене на ключ, HashMap преглежда елементите във веригата, сравнявайки ключовете с метода equals(), за да намери правилния.
От Java 8 нататък, ако веригата стане твърде дълга, тя се преобразува в балансирано дърво (TreeNode), което подобрява производителността на търсенето от O(n) до O(log n).