La clase HashSet es parte del marco de colecciones de Java y proporciona una colección rápida y desordenada que no permite elementos duplicados. Está construido sobre HashMap, lo que significa que hereda los mismos beneficios de complejidad de tiempo pero se centra exclusivamente en la unicidad del elemento . En este artículo, exploraremos cómo funciona HashSet, qué lo hace único y por qué es diferente de otras colecciones.
Un HashSet es:
// Parameterized constructor with initial capacity SetsetWithInitialCapacity = new HashSet(5); // Parameterized constructor using a collection Set setWithCollection = new HashSet(Arrays.asList(4, 4, 3)); // Default constructor with default capacity 16 Set set = new HashSet();
set.add(1); set.add(2); set.add(1); // Duplicate value is ignored System.out.println(set); // Output -> [1, 2]
Si necesita reemplazar valores duplicados en lugar de ignorarlos, HashSet no será la opción correcta. Esto se debe a que prioriza la unicidad del elemento.
// Parameterized constructor with initial capacity SetsetWithInitialCapacity = new HashSet(5); System.out.println(setWithInitialCapacity.size()); // Output -> 0
Aunque la capacidad de setWithInitialCapacity es 5, el tamaño es 0 porque el tamaño refleja el número de elementos presentes en el conjunto, no la capacidad inicial. Puedes pensar en la capacidad como el espacio de almacenamiento interno, que se ajusta a medida que se agregan elementos.
// Parameterized constructor using a collection SetsetWithCollection = new HashSet(Arrays.asList(4, 4, 3)); System.out.println(setWithCollection); // Output -> [3, 4] or [4, 3]
Si necesita conservar elementos ordenados, considere usar un TreeSet, que garantiza que los elementos estén organizados en orden ascendente.
En las entrevistas, una pregunta común es si se puede recuperar un índice de un elemento en un HashSet. La respuesta es No, porque HashSet utiliza un mecanismo de hash para almacenar elementos, no una estructura basada en índices como una lista o una matriz.
Dado que HashSet está respaldado por un HashMap, utiliza las claves del mapa para almacenar elementos, mientras que los valores son irrelevantes. Es por eso que cada elemento de un HashSet debe ser único, al igual que las claves de un HashMap.
HashSet es una herramienta poderosa cuando necesitas una colección rápida y desordenada que evite duplicados. Si bien ofrece O(1) complejidad temporal para la mayoría de las operaciones, carece de funciones como clasificación e indexación. Para los desarrolladores, saber cómo se relaciona HashSet con HashMap ayuda a comprender su funcionamiento interno y hacer un mejor uso del marco de colecciones.
En la próxima publicación, exploraremos una pregunta común en las entrevistas que se formula con frecuencia en las entrevistas para evaluar el conocimiento de los candidatos sobre los conceptos de colecciones.
Fundamentos de Java
Conceptos básicos de la entrevista de matriz
Conceptos básicos de la memoria Java
¡Feliz codificación!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3