Asosiyatibong array

Sa agham pangkompyuter, ang **asosiyatibong array** o **ugnayang talahanayan** (*associative array* o *map* o *dictionary*) ay isang abstraktong uri ng datos na binubuo ng isang koleksiyon ng mga pares na (key, value) upang ang bawat posibleng *key* (susi) ay lumalabas lamang nang isang beses sa koleksiyon.

Ang mga operasyong may kaugnayan sa pagpapatakbo ng mga ganitong uri ng datos ay maaaring:

* magdagdag ng isang pares sa koleksyon;
* magtanggal ng isang pares mula sa koleksyon;
* magabago ng isang umiiral na pares;
* maghanap ng isang halagang nauugnay sa isang partikular na susi o *key*.

## Operasyon 
Sa isang asosiyatibong array, ang pagkakaugnay sa pagitan ng isang susi at isang halaga ay madalas na kilala bilang isang "pagmamapa" (*mapping*), at ang parehong pagmamapa ng mga salita ay maaari ring gamitin upang tumukoy sa proseso ng paglikha ng isang bagong samahan o ugnayan.

Ang mga uri ng pagpapatakbo o operasyon na karaniwang tinutukoy para sa isang nauugnay na talahanayan ay ang:

* **Pagdaragdag** o **pagsingit**: magdagdag ng bagong (key, value) na pares sa koleksyon, na nagmamapa sa bagong susi sa bagong halaga nito. Ang mga argumento sa pagpapatakbo na ito ay ang susi at ang halaga.
* **Muling pagtalaga**: palitan ang halaga sa isa sa mga pares na (key, value) na nasa koleksyon na, na nagmapa ng isang mayroon nang susi sa isang bagong halaga. Tulad ng isang pagsingit, ang mga argumento sa operasyon na ito ay ang susi at ang halaga.
* **Pag-alis** o **pagtanggal**: alisin ang isang pares ng (key, value) mula sa koleksyon, na nag-aalis sa mapa ng isang ibinigay na susi mula sa halaga nito. Ang argumento sa operasyong ito ay ang susi.
* **Paghanap**: hanapin ang halaga (kung mayroon man) na nakasalalay sa isang naibigay na susi. Ang mga argumento sa pagpapatakbo na ito ay ang susi, at ang halaga na ibinalik mula sa operasyon. Kung walang nahanap na halaga, ang ilang mga asosiyatibong array ay nagtataas ng isang pagbubukod (*exception*), habang ang iba ay lumilikha ng isang pares na may ibinigay na susi kasama ang panimulang halaga ng uri  (sero, walang laman na lalagyan ...).

Kadalasan pagkatapos sa halip na magdagdag o magtalaga muli mayroong isang solong hanay ng operasyon na nagdaragdag ng isang bagong (key, value) na pares kung ang isa ay wala na, at kung hindi man ay muling italaga ito.

Bilang karagdagan, ang mga nauugnay na array ay maaari ring isama ang iba pang mga pagpapatakbo tulad ng pagtukoy ng bilang ng mga pagmamapa o pagbubuo ng isang iterator upang i-loop ang lahat ng mga mappings. Karaniwan, para sa naturang operasyon, ang pagkakasunud-sunod kung saan ibabalik ang mga pagmamapa ay maaaring tukuyin na tinukoy.

Ang isang multimap na naglalahat ng isang nakakaugnay na array sa pamamagitan ng pagpapahintulot sa maraming mga halaga na maiugnay sa isang solong key. Ang isang mapa ng bidirectional ay isang kaugnay na uri ng abstract data kung saan gumana ang mga pagmamapa sa magkabilang direksyon: ang bawat halaga ay dapat na maiugnay sa isang natatanging susi, at ang pangalawang pagpapatakbo ng paghahanap ay tumatagal ng isang halaga bilang isang pagtatalo at tinitingnan ang susi na nauugnay sa halagang iyon.
Kategorya:Estruktura ng datos

## Tingnan din 
* Punsiyon sa kompyuter
* Punsiyon sa matematika
* JSON