Array associatiu (estructura de dades)

De Viquipèdia
Dreceres ràpides: navegació, cerca

En informàtica, un array associatiu o hash (a 2009 no existeix un terme normalitzat en català) és un tipus d'estructura de dades que conté elements indexats amb valors únics (no poden existir dos elements amb la mateixa clau índex dins del mateix array associatiu). Les claus índex poden ser claus literals o strings. No existeix un ordre a priori dels elements dins de l'array. Es pot accedir a cada element a partir de la seva clau index única.

Un array associatiu és una generalització del concepte d'array basat només en nombres enters com a claus d'índex, que ja proporcionaven els primers llenguatges de programació. En programació, els arrays associatius es fan servir per al mapeig d'un conjunt de valors en uns altres valors corresponents.

Operacions[modifica | modifica el codi]

Les operacions habituals sobre un array associatiu són:

Les habituals dels contenidors (vegeu l'article contenidor):

  • Una operació per obtenir el nombre d'elements presents a l'array associatiu
  • Un iterador sobre cada un dels elements o bé sobre cada una de les claus de l'array associatiu, ja que a priori no existeix un ordre o una seqüència. Per exemple en el llenguatge de programació awk:

for(clau in elements) {
print clau "->" elements[clau]
}

Les específiques d'un array associatiu:

  • Un constructor per crear un array associatiu inicialment buit
  • Una operació per afegir un nou element amb una nova clau, si encara no existeix
  • Una operació per canviar el valor de l'element amb una determinada clau, si existeix
  • Una operació per eliminar l'element que té una determinada clau, si existeix
  • Una operació per obtenir el valor de l'element amb una determinada clau, o el que és el mateix , el mapeig d'un valor en un altre de corresponent.
  • Una operació per verificar si ja existeix un element amb una determinada clau. Per exemple en awk:

if(clau in elements) {
print clau " existeix amb valor " elements[clau]
} else {
print clau " no existeix"
}

Comparació entre llenguatges de programació[modifica | modifica el codi]

Entre els llenguatges de programació que proporcionen directament arrays associatius tenim: Snobol4 (on s'anomenen "table"), MUMPS, awk (on de fet són l'únic tipus estructurat disponible), perl (on s'anomenen "hash"), tcl, Javascript, Python, Ruby, Lua, PHP, entre altres. En molts altres llenguatges de programació, els arrays associatius estan disponibles sense una sintaxi específica com a part de llibreries.

Entre els diferents noms que reben els arrays associatius en diferents llenguatges de programació tenim:

En PHP i JavaScript tots els arrays poden ser associatius, encara que les claus han de ser o bé enters o bé strings.