A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Asociativní pole (slangově hash podle nejčastější implementace, v některých jazycích slovník, dictionary, anglicky též map) je datová struktura složená z dvojic klíč-hodnota. Klíčem v asociativním poli bývá často textový řetězec, ale klíčem může být i číslo nebo naopak složená datová struktura. Normální pole lze považovat za speciální případ asociativního pole, u něhož klíče tvoří souvislý interval celých čísel. Některé programovací jazyky dovolují použít kombinaci sekvenčního indexování (jako u klasického pole) a asociativního indexování pole.
Význam asociativního pole spočívá v jednodušším zápisu programu, při kterém odpadají konstrukce pro vyhledávání prvku v poli.
Implementace
Protože klíč nelze přímo použít jako číslo nebo index prvku v poli, je zapotřebí prvek podle klíče vyhledat. Nejpoužívanější metodou je mechanismus zvaný hašovací funkce (anglicky též hash function). Některé implementace používají vyhledávací stromy.
Příklad
Jazyk Perl
%foo = (a=>"1", b=>"10", c=>"100");
print $foo{c}, $foo{b}, $foo{a};
vypíše 100101
Jazyk PHP
$foo = ;
echo $foo.$foo.$foo;
vypíše 100101
Jazyk JavaScript
foo = { a:"1", b:"10", c:"100" };
alert( foo+foo+foo );
vypíše 100101
Jazyk Python
foo = {"a":1, "b":2, 5:"b"}
print(foo, foo, foo)
vypíše 1 2 b
Jazyk C++ s knihovnou Qt
Pole je s určením typů (v příkladu je klíčem datový typ Qstring, hodnotou integer), v Qt je k dispozici i QMultiHash.
QHash<QString, int> hash;
hash = 1;
hash = 3;
hash = 7;
out<<hash<<hash<<hash;
vypíše: 137
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
- C++ – knihovna Qt
- Java – The Collections Framework, třídy implementující rozhraní
Map
(HashMap
,TreeMap
, …)
Související článkyeditovat | editovat zdroj
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antropológia
Aplikované vedy
Bibliometria
Dejiny vedy
Encyklopédie
Filozofia vedy
Forenzné vedy
Humanitné vedy
Knižničná veda
Kryogenika
Kryptológia
Kulturológia
Literárna veda
Medzidisciplinárne oblasti
Metódy kvantitatívnej analýzy
Metavedy
Metodika
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk