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,…)

[editovat] Podívejte se také na