25 noviembre, 2012

Hashtable

Hashtable es una estructura Java de tipo diccionario que permite almacenar elementos identificados por pares clave/valor de forma sencilla. Es similar a HashMap, con la diferencia de que Hashtable es sincronizado.

Hashtable no permite que se incluyan ni keys ni values a null, en caso de intentar añadir un elemento a null, saltará la excepción NullPointerException.

Hashtable tiene varios constructores:

  • Hashtable()
  • Hashtable(int size)
  • Hashtable(int size, float fillRatio)
  • Hashtable(Map m)

Hashtable <String, String> ejemplo= new Hashtable();

Para añadir elementos en el Hashtable existe el método put(Object key, Object value), con el que podremos ir introduciendo los elementos de nuestro Hashtable.

ejemplo.put ("ES", "España");
ejemplo.put ("EN", "Reino Unido");
ejemplo.put ("FR", "Francia");
ejemplo.put ("US", "Estados Unidos");

Para listar las claves de un Hashtable podemos utilizar el método keys() que devuelve un enumerado con las keys de nuestro hashtable, una vez obtenido basta con recorrerlo:

Enumeration <String> e = ejemplo.keys();
while(e.hasMoreElements())
   System.out.println(e.nextElement());

Hashtable no permite trabajar directamente con Iterator, pero es posible obtener un set que permite el uso de Iterators, haciendo uso de métodos de Map como entrySet() y keySet() e iterar sobre ellos:

Set set = ejemplo.keySet();
Iterator i = set.iterator();
String str;
while(i.hasNext()){
    str=(String)i.next();
    System.out.println(str +" = " + ejemplo.get(str));
}

Dispone de otros métodos que permiten obtener los elementos de un Hashtable como:

  • elements(): retorna un Enumeration con los valores del hashtable
  • values(): retorna un Collection con los valores del hashtable

Podemos ver la especificación en el siguiente enlace. http://bit.ly/QEoI7Y