logo

Conjunto de hash de Java

Jerarquía de clases Java HashSet

La clase Java HashSet se utiliza para crear una colección que utiliza una tabla hash para almacenamiento. Hereda la clase AbstractSet e implementa la interfaz Set.

bytes de Python a cadena

Los puntos importantes sobre la clase Java HashSet son:

  • HashSet almacena los elementos utilizando un mecanismo llamado hash.
  • HashSet contiene únicamente elementos únicos.
  • HashSet permite un valor nulo.
  • La clase HashSet no está sincronizada.
  • HashSet no mantiene el orden de inserción. Aquí, los elementos se insertan según su código hash.
  • HashSet es el mejor enfoque para las operaciones de búsqueda.
  • La capacidad inicial predeterminada de HashSet es 16 y el factor de carga es 0,75.

Diferencia entre lista y conjunto

Una lista puede contener elementos duplicados, mientras que Set contiene únicamente elementos únicos.

Jerarquía de la clase HashSet

La clase HashSet extiende la clase AbstractSet que implementa la interfaz Set. La interfaz Set hereda las interfaces Collection e Iterable en orden jerárquico.


Declaración de clase HashSet

Veamos la declaración de la clase java.util.HashSet.

constructor de cuerdas
 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Constructores de la clase Java HashSet

SN Constructor Descripción
1) HashSet() Se utiliza para construir un HashSet predeterminado.
2) HashSet (capacidad interna) Se utiliza para inicializar la capacidad del hash establecido en la capacidad del valor entero dado. La capacidad crece automáticamente a medida que se agregan elementos al HashSet.
3) HashSet (capacidad int, factor de carga flotante) Se utiliza para inicializar la capacidad del conjunto de hash a la capacidad del valor entero dado y al factor de carga especificado.
4) HashSet(Colección c) Se utiliza para inicializar el conjunto de hash utilizando los elementos de la colección c.

Métodos de la clase Java HashSet

Varios métodos de la clase Java HashSet son los siguientes:

SN Modificador y tipo Método Descripción
1) booleano agregar(E e) Se utiliza para agregar el elemento especificado a este conjunto si aún no está presente.
2) vacío claro() Se utiliza para eliminar todos los elementos del conjunto.
3) objeto clon() Se utiliza para devolver una copia superficial de esta instancia de HashSet: los elementos en sí no se clonan.
4) booleano contiene(Objeto o) Se utiliza para devolver verdadero si este conjunto contiene el elemento especificado.
5) booleano esta vacio() Se utiliza para devolver verdadero si este conjunto no contiene elementos.
6) Iterador iterador() Se utiliza para devolver un iterador sobre los elementos de este conjunto.
7) booleano eliminar (Objeto o) Se utiliza para eliminar el elemento especificado de este conjunto si está presente.
8) En t tamaño() Se utiliza para devolver el número de elementos del conjunto.
9) Separador divisor() Se utiliza para crear un Spliterator de enlace tardío y a prueba de fallas sobre los elementos del conjunto.

Ejemplo de HashSet de Java

Veamos un ejemplo sencillo de HashSet. Observe que los elementos se iteran en una colección desordenada.

 import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Five One Four Two Three 

Ejemplo de Java HashSet ignorando elementos duplicados

En este ejemplo, vemos que HashSet no permite elementos duplicados.

 import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
 Ajay Vijay Ravi 

Ejemplo de Java HashSet para eliminar elementos

Aquí vemos diferentes formas de eliminar un elemento.

 import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } } 
 An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: [] 

Java HashSet de otra colección

 import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Vijay Ravi Gaurav Ajay 

Ejemplo de Java HashSet: libro

Veamos un ejemplo de HashSet en el que agregamos libros para configurar e imprimir todos los libros.

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

Producción:

gb vs mb
 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6 

También te puede interesar:

Funcionamiento de HashSet en Java