0% encontró este documento útil (0 votos)
58 vistas

Colecciones en Java

Las colecciones en Java incluyen Hashtable, HashMap, HashSet, LinkedHashSet y WeakHashMap. Hashtable y HashMap almacenan datos mediante llaves y permiten recuperar valores usando las llaves. LinkedHashSet mantiene el orden de inserción de los elementos, mientras que WeakHashMap usa referencias débiles para las llaves permitiendo que sean eliminadas por el recolector de basura.

Cargado por

Daniel Suhul
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas

Colecciones en Java

Las colecciones en Java incluyen Hashtable, HashMap, HashSet, LinkedHashSet y WeakHashMap. Hashtable y HashMap almacenan datos mediante llaves y permiten recuperar valores usando las llaves. LinkedHashSet mantiene el orden de inserción de los elementos, mientras que WeakHashMap usa referencias débiles para las llaves permitiendo que sean eliminadas por el recolector de basura.

Cargado por

Daniel Suhul
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

16-4-2021 Api Collections

JAVA
Programacion III
Colecciones en Java:
Una Hashtable: Es una estructura de datos que utiliza una función hash para identificar
datos mediante una llave o clave (ej. Nombre de una persona). La función hash
transforma una llave a un valor índice de un arreglo de elementos. En este caso a una
índice de nuestra Hashtable Java.

Una Hashtable Java más específica del funcionamiento es la siguiente:

Vea que el identificador será el que hace referencia a los datos en este caso solo será un
nombre.
Definiendo variable contenedora:

Obteniendo valores de la tabla:

HahMap & HashSet: La clase HashSet como la clase HashMap tienen una ventaja la cual
es, que los valores que se van insertando en la coleccion internamente no tendran un
orden especifico, esto se debe a que estas clases realizan un ordenamiento interno
mediante el hashcode de el elemento(Objeto), por lo cual no sabremos que elemento
traerá.
Características de Java Hashmap:
• 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.

• Si no existe ningún elemento en el Mapa, arrojará una ‘


NoSuchElementException’ .

• 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.

Esto nos da una ventaja para nosotros que es poder sobrescribir el metodo .hashCode()
y .equals() para asi, si tenemos un objeto que tienen sus mismas caracteristicas y mismo
hashcode no se agregue a la colección , una de las principales ventajas de este metodo
es la rapidez en la insercion de los elemento si tenemos cientos de elementosque
agregar, esta coleccion es la indicada para este trabajo.
El algoritmo de busqueda de un elemento en la colecion es el siguiente:
Encuentra el elemento (Objeto) mediante el hashcode. Imagínense varios personas en
un salon con la misma edad.
Ya que encontro el elemento mediante el hashcode se realiza la comparacion si el objeto
es igual mediante el método .equals(). Imaginen que en ese mismo salon se esta
buscando a una persona con un nombre y apellido especifico.

Usando HashMap & HashSet:

LinkedHashSet: Un LinkedHashSet es una versión ordenada de HashSet que mantiene


una lista doblemente enlazada en todos los elementos. Cuando se necesita la orden de
iteración que se mantenga esta clase se utiliza. Cuando iteración a través de un HashSet
el orden es impredecible, mientras que un LinkedHashSet nos permite iterar a través de
los elementos en el orden en que fueron insertados. Cuando el ciclismo a través
LinkedHashSet usando un iterador, los elementos serán devueltos en el orden en el que
se insertaron.
• Syntaxis:
LinkedHashSet<String> hs = new LinkedHashSet<String>();

A continuación se presentan la lista de constructores soportados por el LinkedHashSet:


• LinkedHashSet (): Este constructor se utiliza para crear un HashSet por defecto.
• LinkedHashSet (Colección C): Se utiliza en la inicialización del HashSet con los
eleements de la colección C
• LinkedHashSet (tamaño int): Se utiliza para inicializar el tamaño de la
LinkedHashSet con el número entero mencionado en el parámetro.
• LinkedHashSet (capacidad int, flotar fillRatio): Se puede utilizar para inicializar
tanto la capacidad como la relación de llenado, también llamada la capacidad de
carga de la LinkedHashSet con los argumentos mencionados en el parámetro.
Cuando el número de elementos es superior a la capacidad del conjunto de hash
se multiplica por la relación de llenado ampliando así la capacidad de la
LinkedHashSet
Métodos en LinkedHashSet:
• spliterator () : Este método crea un Spliterator vinculante tarde y fail-fast lo largo
de los elementos de este conjunto.
• clear () : Este método elimina todos los elementos de este conjunto.
• contiene (Object o) : Este método devuelve true si este conjunto contiene el
elemento especificado.
LinkedHashMap: Es una subclase de HashMap, que agrega funciones de acceso
secuencial.
[predeterminado] Cuando accessOrder = false, el acceso se realiza en el orden de
inserción de clave-valor.
Cuando accessOrder = true, el acceso se realiza de acuerdo con el orden de lectura clave-
valor.
Las características secuenciales de LinkedHashMap son realizadas por la lista interna
doblemente enlazada, por lo que la consideramos como una combinación de LinkedList
+ LinkedHashMap.
LinkedHashMap reescribe el método de devolución de llamada proporcionado por
HashMap para realizar su procesamiento de características secuenciales.

Diferencias entre LinkedHashMap y LinkedHashSet:

WeakHashMap: Clase del marco de colecciones de Java proporciona la característica de


la estructura de datos de la tabla hash.
Implementa la interfaz del mapa:

Nota : Las claves del hashmap débil son del tipo WeakReference.
El objeto de un tipo de referencia débil puede ser recolección de
basura en Java si la referencia ya no se usa en el programa.

Métodos de WeakHashMap:
La WeakHashMapclase proporciona métodos que nos permiten realizar varias
operaciones en el mapa.
• put() - inserta la asignación de clave / valor especificada en el mapa
• putAll() - inserta todas las entradas del mapa especificado en este mapa
• putIfAbsent() - inserta la asignación de clave / valor especificada en el mapa si la
clave especificada no está presente en el mapa.
Acceder a elementos de WeakHashMap:
• Usando entrySet (), keySet () y values ()
o entrySet() - devuelve un conjunto de todas las asignaciones de clave /
valor del mapa
o keySet() - devuelve un conjunto de todas las teclas del mapa
o values() - devuelve un conjunto de todos los valores del mapa
Usando get () y getOrDefault ()
• get()- Devuelve el valor asociado con la clave especificada. Devuelve nullsi no se
encuentra la clave.
• getOrDefault()- Devuelve el valor asociado con la clave especificada. Devuelve el
valor predeterminado especificado si no se encuentra la clave.
Eliminar elementos WeakHashMap
• remove(key) - devuelve y elimina la entrada asociada con la clave especificada
del mapa
• remove(key, value) - elimina la entrada del mapa solo si la clave especificada se
asigna al valor especificado y devuelve un valor booleano.

También podría gustarte