Pumunta sa nilalaman

Asosiyatibong array

Mula sa Wikipedia, ang malayang ensiklopedya

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 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.

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 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 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 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 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.


Agham Ang lathalaing ito na tungkol sa Agham ay isang usbong. Makatutulong ka sa Wikipedia sa pagpapalawig nito.