Este documento presenta información sobre diferentes tipos de mapas y diccionarios en Java como Dictionary, HashTable, Map, HashMap y TreeMap. Explica las características y usos de cada uno, incluyendo ejemplos. También cubre colecciones parametrizadas y comparativas entre las diferentes implementaciones de mapas.
4. MAPS&DICTIONARY
Los diccionarios agrupan los elementos identificados mediante claves unicas
Es una colección cuyos elementos son pares y estan formados por un dato y su
clave, que identifica de manera univoca al elemento
47/05/2017 Abad Freddy L.
5. DICTIONARY
Los diccionarios son contenedores asociativos, son denominados como
mapas.
EJEMPLO:
El número de matricula del conjunto de alumnos puede
considerarse un campo clave para organizar la información
relativa al alumnado de una universidad
57/05/2017 Abad Freddy L.
7. DICTIONARY
Es la interfaz para crear diccionarios en las colecciones históricas.
Como por ejemplo : Vector, Stack, Dictionary, HashTable,
Enumeration
Procesa la colección como si fuera un array asociativo al que se
accede por una clave.
77/05/2017 Abad Freddy L.
8. DICTIONARY
La llave y el valor de cada elemento son de tipo objeto.
87/05/2017 Abad Freddy L.
13. HashTable extiende Dictionary
Su comportamiento asemeja a una tabla hash.
Dispersa los elementos según el código que devuelve el
método hashCode() del objeto clave
VENTAJA
Puedo usarla para agrupar datos asociativos
13
HASH TABLE
7/05/2017 Abad Freddy L.
15. Para dispersar el element, la clase de
los objetos “clave” debe disponer del
metodo hashCode().
A su vez, estos deben disponer del
método equals() para realizar
búsquedas y comparaciones.
15
HASH TABLE
7/05/2017 Abad Freddy L.
16. HashTable tiene un factor de carga, por defecto de 0.75.
Permite establecer un factor de carga inicial
16
CONSTRUCTORES DE HASH TABLE
7/05/2017 Abad Freddy L.
25. Almacenan información formada por parejas (valor,
clave).
La interfaz Map establece el comportamiento común
de todos las implementaciones concretas de
diccionarios.
25
MAP
7/05/2017 Abad Freddy L.
26. 26
MAP
ABSTRACT MAP :
Implementa todos los metodos de la interfaz MAP, excepto
entrySet(), que es implementado en una clase concreta.
7/05/2017 Abad Freddy L.
29. • Organizan los elementos en una tabla hash, a su
vez proporciona una eficiencia constante a las
operaciones de búsqueda e inserción.
• Sus elementos pares (clave, valor=NULL) se
guardan en un array de objetos de tipo Entry.
Entry [ ] tabla.
29
HASHMAP
7/05/2017 Abad Freddy L.
32. Hereda métodos de AbstractMap y de la interfaz Map.
Busca elementos por clave o valor con containsKey() y
containsValue().
Insertar un elemento con put(), o insertar todos los elementos de otro
mapa con putAll().
32
CARACTERISTICA DE HASHMAP
7/05/2017 Abad Freddy L.
33. Eliminar un elemento por argumento con remove().
Obtener el conjunto de claves con keySet(), una colección de valores
con values() y un conjunto de elementos con entrySet().
Obtener el valor de una clave con get().
33
CARACTERISTICA DE HASHMAP
7/05/2017 Abad Freddy L.
39. 39
TREEMAP
Mantiene orden de elementos utilizando Arbol Rojo-Negro.
Se ordena según campo clave.
La clase Treemap implementa la interfaz SortedMap, para la
ordenación de sus claves.
Treemap incluye la definición de la clase static Entry.
7/05/2017 Abad Freddy L.
40. 40
TREEMAP – ARBOL ROJO NEGRO
• Todo nodo es rojo o es negro.
• El nodo raíz siempre es negro.
• Todas las hojas (Null) son
negras.
• Todo nodo rojo debe tener dos
nodos hijos negros.
• Cada camino desde un nodo
dado a sus hojas descendientes
contiene el mismo número de
nodos negros.
7/05/2017 Abad Freddy L.
47. COLECCIONES PARAMETRIZADAS
47
Las colecciones de Java guardan internamente
elementos de tipo Object (vector o array).
Se consigue una máxima generalización,
permitiendo que una colección guarde
elementos de cualquier tipo en Java.
7/05/2017 Abad Freddy L.
48. COLECCIONES PARAMETRIZADAS
48
Esta nos permite que las colecciones guarden
objetos de cualquier tipo.
System.out.println(lis.get(0)+” “+ lis.get(1));
SALIDA:
3/7 Mi Globo
7/05/2017 Abad Freddy L.
50. VENTAJAS COLECCIONES PARAMETRIZADAS
50
El compilador no aceptará que se agregue ningún tipo de
dato distinto al especificado en la instanciación de la clase.
No es necesario añadir los castings al recuperar los datos
homogéneos de una colección Object.
Se mantiene un mayor control sobre la colección.
7/05/2017 Abad Freddy L.
51. COLECCIONES PARAMETRIZADAS
51
Java amplía la declaración de las clases e interfaces relacionados
con colecciones y las dota de la posibilidad de parametrizar el tipo
que va a tener los elementos de una colección
7/05/2017 Abad Freddy L.
53. COLECCIONES PARAMETRIZADAS
53
Al nombre de la colección le sigue el tipo de los elementos entre
paréntesis angulares.
Si se parametrizan dos tipos, como ocurre en los mapas, se
separan por comas.
7/05/2017 Abad Freddy L.
57. BIBLIOGRAFÍA
HERRAMIENTAS UTILIZADAS EN EL ANÁLISIS DE LOS ALGORITMOS USADOS EN LA
IMPLEMENTACIÓN.
• Joyanes, Zahonero. Estructura de datos en Java. Colecciones, API COLLECTION. (2008) 507-554.
577/05/2017 Abad Freddy L.