Junior — Middle
Selgitage, mida tähendab võtmete kokkupõrge HashMap andmestruktuuris ja kuidas sellega tegeletakse.
sobes.tech AI
Vastus AI-lt
HashMap-i võtme kokkupõrge (hash collision) toimub, kui kaks erinevat võtit arvutamisel annavad sama indeksiväärtuse salvestamiseks massiivis.
Kuidas HashMap sellega tegeleb:
- Java-s kasutab HashMap kettide (ühendatud nimekirjad või tasakaalustatud puud) abil mitme elemendi salvestamist, mis satuvad samasse ämbrisse.
- Uue elemendi lisamisel, mille võti, mille hash on sama, mis olemasoleval, lisatakse see selle ämbriketi kettile.
- Võtme otsimisel läbib HashMap ketis olevad elemendid ja võrdleb võtteid meetodiga equals(), et leida õige.
Alates Java 8-st, kui kett on liiga pikk, muudetakse see tasakaalustatud puuks (TreeNode), mis parandab otsingu jõudlust O(n)-lt O(log n)-le.