Co je hashmap?
V počítačové vědě, hashmap nebo hashovací tabulku je forma strukturujících dat, takže každá část dat je propojena 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 položek. HashMap není konkrétní součástí programu, ale spíše odkazuje na formu datové organizace, která přiřazuje každou položku, známou jako klíč, v databázi k hodnotě, která je pro tuto položku. Funkce hash je součástí programu, který spojuje klíče k jejich hodnotám.
Telefonní knihy slouží jako vynikající příklad hashmapu. Způsob, jakým je stanovena telefonní kniha, představuje strukturu hashmapu. Zaměřuje se na propojení různých hodnot a propojení pouze jedné hodnoty s jedním dalším odpovídajícím termínem nebo telefonním číslem. Jména v telefonní knize jsou klíče a telefonní čísla jsou hodnoty spojené s nimi. Každému člověku v knize je přiděleno jiné číslo a žádné dva nejsou podobné. Slouží také boxy pošty
Metafora pro hashmap. Každý člověk má klíč k jediné krabici. Krabice může mít několik informací - účty, dopisy, pohlednice - vše určené pro jednotlivce, který má klíč k krabici. Když je správný klíč vložen do správného pole nebo se shoduje se správným boxem, otevře se odhalit jeho obsah.
Dokonale fungující hashmaps by propojil jeden klíč s jedním „pole“ v počítačové databázi. Bohužel může dojít k faktoru známému jako hash kolize, kde dva klíče jdou do stejné krabice. K tomu dochází, když je zadáno velké množství dat a není dostatek „krabic“, které by to vyhovovalo všemu.
Na rozdíl od telefonního seznamu nebo poštovní schránky zahrnují hashmaps kromě klíče a hodnoty nebo krabice, kterou odpovídá, třetí prvek. Zahrnuje také funkci hash. Osoba ví, která pošta je její, ale musí být sděleno počítače, který klíč jde do kterého pole. Hash fuNuction se dívá na klíč, převádí jej do řady čísel nebo kódu a propojuje jej s krabicí, která obsahuje odpovídající kód. Název klíče, například „Mary“, je pouze tam, takže je pro lidi snazší interpretovat, zatímco skutečný kód je řetězec čísel určených pro počítač ke čtení.