logo

Jeu de hachage Java

Hiérarchie des classes Java HashSet

La classe Java HashSet est utilisée pour créer une collection qui utilise une table de hachage pour le stockage. Il hérite de la classe AbstractSet et implémente l'interface Set.

Les points importants concernant la classe Java HashSet sont :

  • HashSet stocke les éléments en utilisant un mécanisme appelé hachage.
  • HashSet contient uniquement des éléments uniques.
  • HashSet autorise la valeur nulle.
  • La classe HashSet n'est pas synchronisée.
  • HashSet ne conserve pas l'ordre d'insertion. Ici, les éléments sont insérés sur la base de leur hashcode.
  • HashSet est la meilleure approche pour les opérations de recherche.
  • La capacité initiale par défaut de HashSet est de 16 et le facteur de charge est de 0,75.

Différence entre liste et ensemble

Une liste peut contenir des éléments en double alors que Set ne contient que des éléments uniques.

Hiérarchie de la classe HashSet

La classe HashSet étend la classe AbstractSet qui implémente l'interface Set. L’interface Set hérite des interfaces Collection et Iterable dans l’ordre hiérarchique.


Déclaration de classe HashSet

Voyons la déclaration de la classe java.util.HashSet.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Constructeurs de la classe Java HashSet

SN Constructeur Description
1) HashSet() Il est utilisé pour construire un HashSet par défaut.
2) HashSet (capacité entière) Il est utilisé pour initialiser la capacité du hachage défini à la capacité de valeur entière donnée. La capacité augmente automatiquement à mesure que des éléments sont ajoutés au HashSet.
3) HashSet (capacité int, float loadFactor) Il est utilisé pour initialiser la capacité de l'ensemble de hachage à la capacité de valeur entière donnée et au facteur de charge spécifié.
4) HashSet(Collection c) Il permet d'initialiser le hash set en utilisant les éléments de la collection c.

Méthodes de la classe Java HashSet

Les différentes méthodes de la classe Java HashSet sont les suivantes :

SN Modificateur et type Méthode Description
1) booléen ajouter(E e) Il permet d'ajouter l'élément spécifié à cet ensemble s'il n'est pas déjà présent.
2) vide clair() Il permet de supprimer tous les éléments de l'ensemble.
3) objet cloner() Il est utilisé pour renvoyer une copie superficielle de cette instance HashSet : les éléments eux-mêmes ne sont pas clonés.
4) booléen contient (Objet o) Il est utilisé pour renvoyer true si cet ensemble contient l'élément spécifié.
5) booléen est vide() Il est utilisé pour renvoyer true si cet ensemble ne contient aucun élément.
6) Itérateur itérateur() Il est utilisé pour renvoyer un itérateur sur les éléments de cet ensemble.
7) booléen supprimer (Objet o) Il est utilisé pour supprimer l'élément spécifié de cet ensemble s'il est présent.
8) int taille() Il est utilisé pour renvoyer le nombre d’éléments dans l’ensemble.
9) Séparateur séparateur() Il est utilisé pour créer un Spliterator à liaison tardive et à échec rapide sur les éléments de l'ensemble.

Exemple de jeu de hachage Java

Voyons un exemple simple de HashSet. Remarquez que les éléments itèrent dans une collection non ordonnée.

 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 

Exemple Java HashSet ignorant les éléments en double

Dans cet exemple, nous voyons que HashSet n'autorise pas les éléments en double.

 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 

Exemple Java HashSet pour supprimer des éléments

Ici, nous voyons différentes manières de supprimer un élément.

 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 d'une autre collection

 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 

Exemple Java HashSet : livre

Voyons un exemple de HashSet dans lequel nous ajoutons des livres pour définir et imprimer tous les livres.

 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); } } } 

Sortir:

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

Tu pourrais aussi aimer:

Fonctionnement de HashSet en Java