Tudná elmagyarázni egy hash-tábla működési elvét és hogyan tárolódnak benne az adatok?
sobes.tech MI
Válasz az MI-től
Hash-tábla egy olyan adatszerkezet, amely nagyon gyors hozzáférést biztosít az adatokhoz kulcs alapján. Működési elve egy hash-függvény használatán alapul, amely a kulcsot egy tömb indexévé alakítja, ahol a megfelelő érték tárolódik.
Amikor egy kulcs-érték párt kell tárolni, a hash-függvény kiszámítja az indexet, és az adatokat ebbe a tömbbe helyezi. Kulcs szerinti kereséskor a hash-függvény újra kiszámítja az indexet, és gyorsan megtalálja a szükséges értéket.
Ha két különböző kulcs ugyanazt az indexet adja (ütközés), általában a láncolt lista módszert alkalmazzák: a cellában egy lista tárolódik az összes ilyen indexű elemből, és a keresés ebben a listában történik.
Példa Dart (Flutter):
void main() {
Map<String, int> hashTable = {};
hashTable['apple'] = 5;
hashTable['banana'] = 3;
print(hashTable['apple']); // 5
}
Itt a Map egy hash-tábla megvalósítása, ahol a kulcs egy sztring, az érték pedig egy szám.