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