Arrays asociativos – Java

Hashtable

Una Hashtable es una estructura Java de tipo diccionario que nos permite almacenar elementos identificadospor pares clave/valor.

La estructura Hashtable está definida dentro del paquete  java.util por tanto hay que importar el paquete.

import java.util.Hashtable;

El constructor de Hashtable.

Hastable<String,String> paises = new = Hastable<String,String> ();

Para añadir elementos se usa el método .put(clave,valor).

paises.put("ES","España");

Para recuperar elementos usamos el método .get(clave).

System.out.println(paises.get("ES"));

Eliminar elementos con el método .remove(clave).

paises.remove("ES");

Para comprobar si una clave existe en el array asociativo se usa el método .containsKey(clave) y retorna true o false.

paises.containsKey("ES");

Para comprobar si un valor existe en el array asociativo se usa el método .contains(valor) y retorna true o false.

paises.contains("España");

Recorrer el array asociativo se hace con el método keys() y retorna un objeto de la clase Enumeration con todas las claves.

claves = paises.keys();

while (claves.hasMoreElements()){

Object clave = claves.NextElement();

Object valor = capitales.get(clave);

System.out.println("Pais " + clave.toString() + " Capital " + valor.toString());

{

También está el método .elements() que devuelve u objeto de la clase Enumeration con todos los valores del array asociativo y el método .values() que devuelve un objeto de la clase Collection con todos los valores del array asociativo.

Recorrer de forma ordenada el array asociativo se hace con el método keySet() y retorna un objeto de la clase Set con todas las claves. Para recorrer el objeto Set de forma ordenada lo convertimos a un array y lo ordenamos con el método .sort().

String[] claves = (String[]) capitales.keySet().toArray(new String[0]);

java.util.Arrays.sort(claves);

for (String clave : claves) {

System.out.println(clave + " : " + capitales.get(clave));

{

Enlace a más métodos de la clase Hashtable: http://w3api.com/Java/Hashtable/