Asociativní pole
Z Wikipedie, otevřené encyklopedie
Asociativní pole (nebo také hash podle nejčastější implementace) je pole jehož prvky nejsou indexovány pomocí posloupnosti celých čísel, ale pomocí klíčů. Klíčem může být číslo (v nesekvenční posloupnosti), textový řetězec a jiné. Mnohdy dovolují některé programovací jazyky použít kombinaci sekvenčního indexování (jako u klasického pole) a asociativního indexování pole.
Význam asociativního pole je v jednodušším zápisu programu, kde odpadají konstrukce pro vyhledávání prvku v poli.
Obsah |
[editovat] Implementace
Protože přímo z klíče nelze spočítat index (nebo adresu) prvku v poli, je zapotřebí prvek podle klíče vyhledat. Nejpoužívanější metodou je mechanismus zvaný hašovací funkce (angl. hash function).
[editovat] Příklad
[editovat] Jazyk Perl
%foo = (a=>"1", b=>"10", c=>"100");
print $foo{c}, $foo{b}, $foo{a};
vypíše 100101
[editovat] Jazyk PHP
$foo = array("a"=>"1", "b"=>"10", "c"=>"100");
echo $foo["c"].$foo["b"].$foo["a"];
vypíše 100101
[editovat] Jazyk JavaScript
foo = { "a":"1", "b":"10", "c":"100" };
alert( foo["c"]+foo["b"]+foo["a"] );
vypíše 100101 (pozor složené závorky!, jinak kulaté nebo hranaté)
[editovat] Programovací jazyky
Známé programovací jazyky, které mají asociativní pole implementováno jako abstraktní datový typ:
Některé programovací jazyky, které nemají přímo implementovanou podporu asociativního pole, ale obsahují implementaci tohoto typu pomocí sady funkcí nebo metod třídy v knihovnách:
- C++ – STL třída
map - Java – The Collections Framework, třídy implemetující rozhraní
Map(HashMap,TreeMap,…)

