0% encontró este documento útil (0 votos)
49 vistas4 páginas

Has yHasMap

El documento explica que Java.util.Map permite modelar una relación entre elementos de dos conjuntos donde a cada elemento de un conjunto (clave) le corresponde uno y solo uno del conjunto final (valor). Un ejemplo es un diccionario donde la clave es una palabra y el valor su definición. Java.util.HashMap implementa la interfaz Map, almacenando pares clave-valor donde las claves son únicas y los valores pueden repetirse. Los métodos principales de Map incluyen put para almacenar datos, get para recuperarlos, y size para obtener la cantidad de

Cargado por

John Gutierrez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas4 páginas

Has yHasMap

El documento explica que Java.util.Map permite modelar una relación entre elementos de dos conjuntos donde a cada elemento de un conjunto (clave) le corresponde uno y solo uno del conjunto final (valor). Un ejemplo es un diccionario donde la clave es una palabra y el valor su definición. Java.util.HashMap implementa la interfaz Map, almacenando pares clave-valor donde las claves son únicas y los valores pueden repetirse. Los métodos principales de Map incluyen put para almacenar datos, get para recuperarlos, y size para obtener la cantidad de

Cargado por

John Gutierrez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

- Java.util.

Map
¿Para qué sirven?
Definición
El tipo de dato Map, incluido en el paquete java.util, permite modelar el concepto de aplicación: una
relación entre los elementos de dos conjuntos de modo que a cada elemento del conjunto inicial le
corresponde uno y solo un elemento del conjunto final. Los elementos del conjunto inicial se
denominan claves (keys) y los del conjunto final valores (values).
En la figura 1 puede verse un ejemplo de Map. En este caso las claves son cadenas de caracteres,
cada una de las cuales representa un valor numérico en diversas representaciones textuales, y los
valores son enteros.
Cada cadena tiene asociada el valor numérico correspondiente

Como entre las claves no puede haber elementos duplicados (una clave no puede estar asociada
con más de un valor), las claves forman un conjunto (Set). Sin embargo, sí que puede haber
valores duplicados, por los que estos están en una Collection.
Por tanto, un Map está definido por un conjunto de claves, una colección de valores y un conjunto
de pares clave-valor (también llamadas entradas), que son realmente los elementos de los que
está compuesto.
Dentro de la jerarquía de tipos de Java, Map no extiende a Collection ni a Iterable. Por tanto, no se
puede aplicar un for extendido sobre sus elementos, es decir, sobre sus pares, salvo que
accedamos explícitamente a ellos. Los Map se utilizan en muchas situaciones. Por ejemplo, los
llistados telefónicos (clave: nombre del contacto, valor: número de teléfono), listas de clase (clave:
nombre del alumno, valor: calificaciones), ventas de un producto (clave: código de producto, valor:
total precio de venta), índices de palabras por páginas en un libro (clave: palabra, valor: lista de
números de página donde aparece), la red de un Metro (clave: nombre de la estación, valor:
conjunto de líneas que pasan por esa estación, o al revés, clave: número de línea, valor: lista de
estaciones de esa línea), etc.
Tiene también muchas otras aplicaciones en informática: representar diccionarios o propiedades,
almacenar en memoria tablas de bases de datos, cachés, etc.
Centrándonos en Java, la interfaz Map tiene dos tipos genéricos, que suelen denominarse K (de
Key) y V (de Value): Map<K, V>.

El Map del ejemplo anterior sería Map<String, Integer>.

La clase que implementa la interfaz Map es HashMap (aunque también se puede utilizar TreeMap).
La clase HashMap obliga a definir de forma correcta el método hashCode del tipo de las claves
para evitar comportamientos incorrectos, como claves repetidas. Asimismo, al igual que pasa en el
tipo Set, los objetos mutables que se introducen en un Map son “vistas” o referencias a objetos y,
por tanto, si estos cambian, el Map puede dejar de ser coherente, esto es, podría tener claves
repetidas.

Un Map cuyas claves sean String y cuyos valores sean Integer se definiría e inicializaría de la
siguiente forma:
¿Cuáles son sus métodos principales?
Los métodos del tipo Map se relacionan a continuación. La información completa sobre este tipo se
puede
encontrar en la API de Java1
- Java.util.HashMap.
Un HashMap es la implementación de la interface Map, esta interface es un tipo de Collection que
almacena datos asociando una llave a un valorMap<key, value>. key= la llave. value= String,
Integer, Boolean..., esta interface sirve para muchas cosas y tiene ciertas caracteristicas que la
definen, por ejemplo, no permite key duplicados, cada key tiene que estar asociado a un valor
como máximo, si agregas un key que ya existe sobrescribe el valor del key anterior, solo permite
Object types lo que quiere decir que no puedes poner un valor primitivo.

Características de Java Hashmap


a) Los valoresse pueden almacenar en un mapa formando un par clave-valor. El valor se puede
recuperar usando la clave pasándola al método correcto.
b) Si no existe ningún elemento en el Mapa, arrojará una ‘ NoSuchElementException’ .
c) HashMap almacena solo referencias de objetos. Por eso, es imposible utilizar tipos de datos
primitivos como double o int. Utilice la clase contenedora (como Integer o Double) en su lugar.

Métodos importantes de Hashmap


 get (Object KEY) – Esto devolverá el valor asociado con una clave especificada en este
hashmap de Java.
 put (Object KEY, String VALUE) – Este método almacena el valor especificado y lo
asocia con la clave especificada en este mapa.
A continuación, se muestra una implementación de ejemplo de java Hash Map:

Salida:
Elementos del mapa:
{Tipo = vehículo de 2 ruedas, precio = 85000, potencia = 220, nombre = Suzuki}
Métodos principales.
int size(): Devuelve el número de parejas el Map
Object get(Object key): Devuelve un objeto dada su clave-key
Object remove(Object key): Elimina una pareja con una clave-key dada
void clear(): Elimina todas las parejas clave-valor agenda.clear();
boolean containsKey(Object key): Comprueba la existencia de una clave.
boolean existe = agenda.containsKey(“Ana”);
boolean containsValue(Object value): Comprueba la existencia de un valor.
boolean existe = agenda.containsValue(963258741);
Set keySet(): Devuelve las claves del Map en un Set (conjunto)
Set claves = agenda.keySet();
Collection values(): Devuelve una colección con los valores del Map
Collection valores = agenda.values();

Qué son Genéricos en Java


En su esencia, el término genéricos significa tipos parametrizados. Los tipos parametrizados son
importantes porque le permiten crear clases, interfaces y métodos en los que el tipo de datos
sobre los que operan se especifica como parámetro. Una clase, interfaz o método que funciona
con un tipo de parámetro se denomina genérico, como una clase genérica o método genérico.
Una ventaja principal del código genérico es que trabajará automáticamente con el tipo de datos
pasados a su parámetro de tipo. Muchos algoritmos son lógicamente los mismos,
independientemente del tipo de datos a los que se apliquen. Por ejemplo, un Quicksort (algoritmo
de ordenación) es el mismo si está ordenando elementos de tipo Integer, String, Object, o Hilo. Con
los genéricos, puede definir un algoritmo una vez, independientemente de cualquier tipo específico
de datos, y luego aplicar ese algoritmo a una amplia variedad de tipos de datos sin ningún esfuerzo
adicional.
Es importante entender que Java siempre le ha dado la habilidad de crear clases, interfaces y
métodos generalizados operando a través de referencias del tipo Object. Debido a que Object es
la superclase de todas las demás clases, una referencia de Object puede referirse a cualquier tipo
de objeto. Así, en el código pre-genérico, las clases, interfaces y métodos generalizados utilizaban
referencias a objetos para operar en varios tipos de datos.
El problema era que no podían hacerlo con la seguridad del tipo, porque se necesitaban
conversiones para convertir explícitamente de Object al tipo real de datos sobre los que se
operaba. Por lo tanto, fue posible crear accidentalmente desajustes de tipo. Los genéricos agregan
el tipo de seguridad que faltaba porque hacen que estas conversiones sean automáticas e
implícitas. En resumen, los genéricos amplían su capacidad de reutilizar el código y le permiten
hacerlo de forma segura y confiable.

También podría gustarte