Bienvenidos sean a este post, hoy veremos el reemplazo del tema del post anterior, Dictionary, el cual nos permite asignar valores unicos de claves a valores, las caracteristicas de utilizar este tipo de interfaz son:

  • Con un valor de clave puedes almacenar un valor en un objeto de Map y poder recuperarlo luego por medio de esa clave
  • Muchos metodos devuelven NoSuchElementException cuando no existen valores en el objeto invocador
  • Una ClassCastException es enviado cuando los elementos son incompatibles con los de un Map
  • Un NullPointerException es enviado cuando se intenta usar un objeto null y esto no esta permitido en el Map
  • Un UnsupportedOperationException cuando se intenta modificar un objeto Map que no se puede.

Veamos algunos de los metodos disponibles en la clase Map:

  • void clear(), borra todos los pares de claves/valores del objeto Map
  • boolean containsKey(Object k), devuelve verdadero si el objeto invocador contiene la clave informada en k, de caso contrario devuelve falso
  • boolean containsValue(Object v), devuelve verdadero si el objeto invocador contiene el valor informado en v, de caso contrario devuelve falso
  • Set entrySet(), devuelve un conjunto que contiene las entradas en el mapa. El conjunto contiene objetos de tipo Map.Entry. Este método proporciona una vista de conjunto del mapa de invocación
  • boolean equals(Object o), devuelve verdadero si el objeto informado en o es un Map y contiene las mismas entradas que el invocador
  • Object get(Object k), devuelve el valor asociado a la clave informada en k
  • int hashCode(), devuelve el codigo hash del objeto invocador
  • boolean isEmpty(), devuelve verdadero (true) si el el objeto invocador esta vacio
  • Set keySet(), devuelve un conjunto con todas las claves del objeto invocador
  • Object put(Object k, Object v), pone una entrada en el mapa invocador sobreescribiendo cualquier valor asociado a la clave, donde k contendra el valor de la clave y v contendra el valor a almacenar
  • void putAll(Map m), pone todos los elemento de m en el objeto invocador
  • Object remove(Object k), elimina la entrada por medio de la clave informada en k
  • int size(), devuelve el numero de pares clave/valor del Map

Estos son algunos de los metodos disponibles a continuacion veamos un ejemplo:

DemoColeccion.java:

import java.util.HashMap;
import java.util.Map;

public class DemoColeccion
{
        public static void main(String[] args)
        {
                Map m1 = new HashMap();
                m1.put("Martin","43");
                m1.put("Marta","50");
                m1.put("Enzo","33");
                m1.put("Javier","45");

                System.out.println("\n Elementos de Map");
                System.out.println("\t" + m1);
                System.out.println("\t" + m1.get("Martin"));
        }
}
Nota: Este codigo puede generar un error al compilarlo pero no se preocupen porque lo genera igual

En este codigo primero agregaremos los dos paquetes necesarios mediante las dos primeras lineas, Map y HashMap, pero tambien podriamos haber usado:

import java.util.*;

Hubiese funcionado de la misma forma pero es probable que nos compile mas de lo necesario, y en mi caso intente mostrar como podemos tambien especificar solamente los paquetes que necesitamos. Continuemos, luego en el cuerpo de main() primero crearemos un objeto referenciado de tipo Map pero el objeto en si sera de tipo HashMap el cual sera el encargado de crear verdaderamente nuestro mapa, luego por medio del metodo put() iremos agregando algunos elementos a nuestro objeto Map, m1, los nombres y valores son de referencia y pueden usar otros si quieren, por ultimo mostraremos a todos los elementos de nuestro objeto Map y en la ultima le diremos que obtenga el valor asociado a la clave Martin, si lo compilamos y probamos veremos la siguiente salida:

tinchicus@dbn001vrt:~/programacion/java/codigo$ java DemoColeccion
Elementos de Map
{Marta=50, Javier=45, Martin=43, Enzo=33}
43
tinchicus@dbn001vrt:~/programacion/java/codigo$

Como pueden ver asi es la forma como se genera un mapa para almacenar valores con una clave, en este caso no esta en el orden que lo ingresamos pero como nosotros no necesitamos que este ordenado, a diferencia de una Array, porque nosotros lo recuperamos por su clave (es decir el nombre) y no por una posicion de un numero entero, despues de mostrar todo el contenido de nuestro “mapa” observen como nos devolvio el valor asociado a la clave Martin, la cual le solicitamos en la ultima linea, para esto es que se utiliza Map.

En resumen, hoy hemos visto a la clase que reemplazo a Dictionary, cuales son sus ventajas, sus metodos, un ejemplo donde vimos como se debe utilizar, vimos como genera el mapa, y como recuperar una informacion, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios