Вы находитесь на странице: 1из 3

arrays asociativos (Hashtables)

Una Hashtable es una estructura Java de tipo diccionario que nos permite almacenar elementos identificados por pares clave/valor de una forma muy sencilla. De igual manera, nos permite una recuperacin atendiendo a las claves insertadas. La estructura Hashtable est definida dentro del paquete java.util. Por ello, lo primero que haremos, ser el importar dicho paquete.

1. import java.util.Hashtable;

El constructor de Hashtable

1. Hashtable<String,String> paises = new Hashtable<String,String>();

Para ir aadiendo elementos a la Hashtable.put(), al cual se le pasan la clave y el valor.

1. paises.put("ES", "Espaa"); 2. paises.put("UK", "Reino Unido"); 3. paises.put("US", "Estados Unidos"); 4. paises.put("FR", "Francia");

Y si queremos recuperar alguna clave de la Hashtable.get()

1. String clave = "US"; 2. System.out.println("El valor de la clave " + clave + " es " + paises.get(clave));

Cmo trabajar con arrays asociativos (Hashtables) en Java


Java Aadir comentarios

Una estructura de datos muy til para todo tipo de aplicaciones es el array asociativo, que es un conjunto de pares (clave, valor). Muchos lenguajes, como PHP o Perl (con variables de tipo hash) incluyen esta funcionalidad. Tambin Java dispone de arrays asociativos, que se implementan en forma de objetos Hashtable.

Declaracin e inicializacin de una variable de tipo Hashtable


En Java, el Hashtable es una clase, por lo que se crea mediante una llamada al mtodo new. Por otra parte, es conveniente definir los tipos de datos de las claves y valores que contiene. Por ejemplo:
import java.util.Hashtable; Hashtable<String, String> capitales = new Hashtable<String, String>(); capitales.put("Espaa","Madrid"); capitales.put("Argentina","Buenos Aires");

Aadir, eliminar y consultar elementos de una Hashtable


Como hemos visto en el ejemplo del apartado anterior, para aadir elementos a la Hashtable se utiliza el mtodo put. Otros mtodos para el manejo y consulta de Hashtables son: remove(clave) Eliminar un par (clave, valor) identificado por su clave get(clave) Obtener el valor asociado a una clave containsKey(clave) Determinar si una clave existe en la hashtable contains(valor), containsValue(valor) Estos dos mtodos son equivalentes, y devuelven true si el argumento existe en la tabla como un valor asociado a una clave. A continuacin vemos un ejemplo de uso de estos mtodos:
// Elimina una entrada de la hashtable capitales.remove("Espaa"); // Obtener el nmero de entradas en la hashtable System.out.println("Tamao de la tabla de capitales: " + capitales.size()); // Consultar la existencia de una clave en la hashtable String pais = "Argentina"; if (capitales.containsKey(pais)) { System.out.println("La capital de " + pais + " es: " + capitales.get(pais)); } else { System.out.println("La tabla no contiene la capital de " + pais); }

Recorrer las entradas de una Hashtable


El mtodo keys() devuelve un objeto de la clase Enumeration que contiene todas las claves de la tabla. Con l, podemos recorrer las entradas existentes en la misma: java.util.Enumeration claves = capitales.keys(); while( claves.hasMoreElements() ) { Object clave = claves.nextElement(); Object valor = capitales.get(clave); System.out.println("Pais: "+clave.toString()+", capital: }

" +valor.toString());

Del mismo modo, existe el mtodo elements() que devuelve un objeto de la clase Enumeration que contiene todos los valores de la tabla. Tambin hay un mtodo values(), que devuelve un objeto de la clase Collection con todos los valores de la tabla.

Recorrer ordenadamente las entradas de una Hashtable


El mtodo keySet() devuelve un objeto de la clase Set que contiene todas las claves de la Hashtable. Para recorrer la Hashtable en orden de clave ascencente, podemos convertir este Set en un Array, y ordenarlo con el mtodo 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)); }

Вам также может понравиться