Tietotekniikassa hashtable on tietorakenne tietojen tallentamiseen, joka koostuu arvoluettelosta, jota kutsutaan avaimiksi, jotka yhdistetään vastaavan arvoluettelon kanssa, jota kutsutaan matriisiksi. Yrityksen nimi voi esimerkiksi muodostua pariksi sen osoitteen kanssa. Tyypillisesti jokaisella taulukon arvolla on sijaintinumero, jota kutsutaan tiivisteeksi. Hajautusfunktio on yleensä joukko ohjeita tai algoritmi, joka yhdistää jokaisen avainarvon hajautukseen – esimerkiksi yhdistämällä yrityksen nimen sen osoitteeseen, puhelinnumeroon ja liiketoimintaluokkaan. Hajautusfunktion tarkoitus on antaa jokaiselle avaimelle yksilöllinen vastaava arvo taulukossa; tätä kutsutaan yleisesti hajautukseksi. Hash -toiminnot on muotoiltava oikein, jotta hashtable toimii oikein.
Hajautustoiminnon suorituskyky tietosarjassa riippuu sen tiivistefunktion tehokkuudesta. Hyvä tiivistefunktio tarjoaa tyypillisesti avainten yhdenmukaisen haun ja vastaavuuksien jakautumisen tasaisesti vastaavassa taulukossa. Hajautus törmäys tapahtuu, kun kaksi avainta määritetään samaan vastaavaan arvoon. Kun tiiviste törmää, hajautusfunktio suoritetaan yleensä uudelleen, kunnes yksilöllinen vastaava arvo löytyy; tämä johtaa yleensä pidempiin hajautusaikoihin. Vaikka hashtable -avainten lukumäärä on yleensä kiinteä, joskus avaimia voi olla päällekkäisiä. Siitä huolimatta hyvin suunnitellulla hashtablella on tehokkaat tiivistefunktiot, jotka yhdistävät jokaisen avaimen yksilölliseen vastaavaan arvoon taulukossa.
Joskus tehottomat hash -funktiot hashtable -tiedostossa voivat myös tuottaa ryhmittelyn kuvauksia. Jos hajautusfunktio luo ryhmittymän olemassa oleville avaimille, tämä voi lisätä vastaavien arvojen etsimiseen kuluvaa aikaa. Tämä voi hidastaa tulevien avainten hajautusta, koska useimmat tiivistefunktiot etsivät yleensä seuraavaa käytettävissä olevaa paikkaa taulukosta. Jos suuri arvojoukko on jo määritetty, uuden avaimen määrittämättömän arvon etsiminen kestää yleensä paljon kauemmin.
Kuormitustekijä on toinen hajautusfunktion tehokkuuteen liittyvä käsite; kuormitustekijä on jo olemassa olevien hajautusten määrä suhteessa hashtable -taulukon vastaavan taulukon kokonaiskokoon. Se määritellään yleensä jakamalla jo määritettyjen avainten määrä vastaavan taulukon koolla. Kun kuormitustekijä kasvaa, hyvä tiivistefunktio säilyttää normaalisti edelleen vakion määrän törmäyksiä ja klustereita tiettyyn pisteeseen saakka. Usein tätä kynnystä voidaan käyttää määrittämään, kuinka tehokas hash -toiminto on tietyllä avainten määrällä ja milloin uutta tiivistefunktiota voidaan tarvita.
Monet tietojenkäsittelytieteen tutkijat ovat pyrkineet tuottamaan täydellisen tiivistefunktion – sellaisen, joka ei aiheuta törmäyksiä tai klustereita, kun käyttöaste kasvaa. Teoriassa avain täydellisen hashtablen tuottamiseen on tuottaa täydellinen hash -toiminto. Yleensä tutkijat uskovat, että täydellisellä tiivistefunktiolla pitäisi olla jatkuva suorituskyky – törmäysten ja ryhmien lukumäärä – ja käyttöaste kasvaa. Pahimmassa tapauksessa täydellinen hajautustoiminto mahdollistaisi jatkuvan hajauttamisen saavuttamatta kynnystä.