Asociativní pole

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 = ["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

Jazyk Python

foo = {"a":1, "b":2, 5:"b"}
print(foo["a"], foo["b"], foo[5])

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["a"] = 1;
hash["b"] = 3;
hash["c"] = 7;
out<<hash["a"]<<hash["b"]<<hash["c"];

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ánky

Pahýl
Tento článek je příliš stručný nebo postrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Asociativní_pole
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.