Co je Hashmap?
V informatice je hashmap nebo hash tabulka strukturou dat, takže každá část dat je spojena s jedinečným identifikačním číslem nebo symbolem. To umožňuje snadné vyhledávání, zejména z velké databáze obsahující tisíce záznamů. Hašmapa není specifickou součástí programu, ale odkazuje na formu organizace dat, která přiřadí každou položku, známou jako klíč, v databázi k hodnotě, která představuje tuto položku. Funkce hash je součástí programu, který propojuje klíče s jejich hodnotami.
Telefonní seznamy slouží jako vynikající příklad hashmapy. Způsob rozložení telefonního seznamu představuje strukturu hashmap. Zaměřuje se na vzájemné propojení různých hodnot a propojení pouze jedné hodnoty s jiným odpovídajícím termínem nebo telefonním číslem. Jména v telefonním seznamu jsou klíče a telefonní čísla jsou hodnoty s nimi spojené. Každému člověku v knize je přiřazeno jiné číslo a žádné dva nejsou stejné.
Poštovní schránky také slouží jako metafora pro hashmap. Každý člověk má klíč do jedné krabice. Krabice může obsahovat více informací - účty, dopisy, pohlednice - vše určené pro osobu, která má klíč do schránky. Když je správný klíč vložen do správného pole nebo do něj přiřazen, otevře se a zobrazí se jeho obsah.
Dokonale fungující hashmapy by propojily jeden klíč s jednou „krabicí“ paměti v počítačové databázi. Bohužel se může vyskytnout faktor známý jako srážka hash, kde dva klíče jdou do stejné krabice. K tomu dochází, když je zadáno velké množství dat a není dostatek „polí“, které by vyhovovaly všem.
Na rozdíl od telefonního seznamu nebo poštovní schránky obsahují hashmapy vedle klíče a hodnoty nebo pole, které se shodují, ještě třetí prvek. Obsahuje také hashovací funkci. Člověk ví, která poštovní schránka je její, ale musí být počítači sděleno, který klíč jde do které schránky. Funkce hash se dívá na klíč, převádí jej do řady čísel nebo kódu a spojuje jej s rámečkem, který obsahuje odpovídající kód. Název klíče, například „Marie“, je pouze tam, takže je pro lidi jednodušší interpretovat, zatímco skutečný kód je řetězec čísel určených pro čtení počítače.