Asociativní pole
Kategorie: Nezařazeno (celkem: 23174 referátů a seminárek)
Informace o referátu:
- Přidal/a: anonymous
- Datum přidání: 11. srpna 2008
- Zobrazeno: 2190×
- Licence: GNU Free Documentation License
- Seznam autorů a změn
- Vyloučení odpovědnosti
Příbuzná témata
Asociativní pole
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 |
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).
Příklad
Jazyk Perl
%foo = (a=>"1", b=>"10", c=>"100"); print $foo{c}, $foo{b}, $foo{a};
vypíše 100101
Jazyk PHP
$foo = array("a"=>"1", "b"=>"10", "c"=>"100"); echo $foo["c"].$foo["b"].$foo["a"];
vypíše 100101
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é)
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
,…)
Související články
- ukazatel
- pole
- abstraktní datový typ