Las Clases del JDK que implementan la interfase Map
son: HashMap
, IdentityHashMap
y WeakHashMap
, mientras que la clase TreeMap
implementa la sub-interfase SortedMap
.
import java.util.*; public class Agenda { public static void main(String args[]) { // Definir un HashMap HashMap global = new HashMap(); // Insertar valores "key"-"value" al HashMap global.put("Doctor", "(+52)-4000-5000"); global.put("Casa", "(888)-4500-3400"); global.put("Hermano", "(575)-2042-3233"); global.put("Hermana", "(421)-1010-0020"); global.put("Suegros", "(334)-6105-4334"); global.put("Oficina", "(304)-5205-8454"); global.put("Ana C.", "(756)-1205-3454"); global.put("Luis G.", "(55)-9555-3270"); global.put("Oficina 2", "(874)-2400-8600"); // Definir Iterator para extraer/imprimir valores for( Iterator it = global.keySet().iterator(); it.hasNext();) { String s = (String)it.next(); String s1 = (String)global.get(s); System.out.println(s + " : " + s1); } // Definir un arreglo con valores determinados String args1[] = { "Casa", "Ana C.", "Luis G." }; // Eliminar los valores del HashMap contenidos en el Arreglo anterior for(int i = 0; i < args1.length; i++) { global.remove(args1[i]); } System.out.println("---- Agenda Modificada ----"); // Definir Iterator para extraer/imprimir valores for( Iterator it2 = global.keySet().iterator(); it2.hasNext();) { String s = (String)it2.next(); String s1 = (String)global.get(s); System.out.println(s + " : " + s1); } } } |
Como primer paso se importan las librerías de java.util.*
donde se concentran la gran mayoría de las Clases del "Collection Framework".
Posteriormente se inicia la declaración de la Clase seguido de su método principal main
.
Se define una instancia de la Clase HashMap
en donde son colocados 10 juegos de valores (key-value) a través del método put
.
Se declara una instancia de Iterator
la cual facilita la extracción de objetos en "Collections", para así extraer los valores del HashMap
e imprimirlos a pantalla.
Posteriormente se define un arreglo de String's
, con tres valores idénticos a las llaves (key's) del HashMap
.
Es definido un ciclo por el número de elementos en el Arreglo declarado anteriormente, en cada iteración de este ciclo se invoca el método remove
del HashMap
, para así eliminar el correspondiente juego de valores (key-value).
Y finalmente se define otro ciclo de extracción a través de Iterator
, para imprimir a pantalla el contenido final del HashMap
.
import java.util.*; public class Agenda2 { public static void main(String args[]) { // Definir un TreeMap TreeMap global = new TreeMap(); // Insertar valores "key"-"value" al HashMap global.put("Doctor", "(+52)-4000-5000"); global.put("Casa", "(888)-4500-3400"); global.put("Hermano", "(575)-2042-3233"); global.put("Hermana", "(421)-1010-0020"); global.put("Suegros", "(334)-6105-4334"); global.put("Oficina", "(304)-5205-8454"); global.put("Ana C.", "(756)-1205-3454"); global.put("Luis G.", "(55)-9555-3270"); global.put("Oficina 2", "(874)-2400-8600"); // Definir Iterator para extraer/imprimir valores for( Iterator it = global.keySet().iterator(); it.hasNext();) { // Nótese que el orden del TreeMap refleja un orden descendente // en sus elementos independientemente del orden de inserción. // Debido al uso de String's esto refleja un orden alfabético String s = (String)it.next(); String s1 = (String)global.get(s); System.out.println(s + " : " + s1); } // Definir dos TreeMap's nuevos en base de determinadas restricciones SortedMap am = global.subMap("A", "M"); SortedMap nz = global.tailMap("N"); System.out.println("---- Agenda A-M ----"); // Definir Iterator para extraer/imprimir valores for( Iterator it2 = am.keySet().iterator(); it2.hasNext();) { String s = (String)it2.next(); String s1 = (String)am.get(s); System.out.println(s + " : " + s1); } System.out.println("---- Agenda N-Z ----"); for( Iterator it3 = nz.keySet().iterator(); it3.hasNext();) { String s = (String)it3.next(); String s1 = (String)nz.get(s); System.out.println(s + " : " + s1); } } } |
Esta Clase es muy similar a la anterior (Agenda.java
) , solo que en este caso se emplea un TreeMap
para agrupar los elementos, a continuación se describen las diferencias entre emplear este "Collection" y el inicial (HashMap
).
Como primer paso se importan las librerías de java.util.*
donde se concentran la gran mayoría de las Clases del "Collection Framework".
Posteriormente se inicia la declaración de la Clase seguido de su método principal main
.
Se define una instancia de la Clase TreeMap
en donde son colocados 10 juegos de valores (key-value) a través del método put
.
Es definida una instancia Iterator
la cual facilita la extracción de objetos en "Collections", para así extraer los valores del HashMap
e imprimirlos a pantalla.
Note que en la impresión del TreeMap
ocurre lo siguiente: Los elementos son impresos por orden alfabético independientemente del orden de inserción, esta es una característica única de un TreeMap
.
Posteriormente se definen dos referencias de la interfase SortedMap
, en la primera de éstas se colocan los resultados del método submap("A", "M")
del TreeMap
, dicho método indica un sub-grupo del TreeMap
con valores (key's) de la letra "A" hasta la letra "M"; la segunda interfase SortedMap
contiene los resultados del método tailMap("N")
que indica un sub-grupo del TreeMap
con valores (key's) de la letra "N" en adelante.
Finalmente se definen dos ciclos de extracción a través de Iterator
, para imprimir a pantalla el contenido final de estos últimos SortedMap's
.NOTA : Recuerde que SortedMap
es la interfase de donde proviene la Clase TreeMap
, por esta razón es válida la equivalencia.