lunes, 28 de abril de 2008

Estructura HashMap

Un mapa es una estructura de Java que nos permite almacenar pares clave/valor. De tal manera que para una clave solamente tenemos un valor.

Si añadimos un nuevo elemento clave/valor cuando la clave ya existe, se sobrescribe el valor almacenado anteriormente.

La estructura a listar que utilizamos como mapa es un HashMap. Lo primero que tenemos que hacer es crear el mapa y añadirle elementos:

Map mapa = new HashMap();

mapa.put("String","String");


Si intentamos añadir otro elemento con una clave ya existente, sobreescribe el valor. Ya que no puede haber elementos duplicados.

Para recorrerlo nos apoyaremos sobre un Iterator que será el puntero encargado en recorrer los elementos del mapa. Obtendremos un iterador sobre la estructura invocando los métodos .entrySet() e .iterator(). Usar iteradores permite separar la lógica de la clase de la lógica de la iteración. Los iteradores tienen un comportamiento similar a los enumerados.

Para mover el iterador utilizaremos el método .next() y si queremos comprobar que el iterador ha llegado al final de la estructura tenemos el método .hasNext()


Iterator it = mapa.entrySet().iterator();

while (it.hasNext()) {
Map.Entry e = (Map.Entry)it.next();
System.out.println(e.getKey() + " " + e.getValue());
}

Si queremos sacar un sólo dato,ponemos mapa.get(key que contiene ese valor);

NOTA:
El HashMap espera siempre un Object,lo digo porque me cree uno Map que esperaba 2 string le meti un int y no me daba error,porque espera un object,y ponga lo que ponga no da error,se lo traga,y me volvi loca,buscando que era lo que fallaba. Por qué no me imprimía el dato.Cosas tontas.