La classe Java HashSet s'utilitza per crear una col·lecció que utilitza una taula hash per a l'emmagatzematge. Hereta la classe AbstractSet i implementa la interfície Set.
Els punts importants sobre la classe Java HashSet són:
conversió de cadena java a nombre enter
- HashSet emmagatzema els elements mitjançant un mecanisme anomenat hashing.
- HashSet només conté elements únics.
- HashSet permet valor nul.
- La classe HashSet no està sincronitzada.
- HashSet no manté l'ordre d'inserció. Aquí, els elements s'insereixen en funció del seu codi hash.
- HashSet és el millor enfocament per a les operacions de cerca.
- La capacitat inicial predeterminada de HashSet és 16 i el factor de càrrega és 0,75.
Diferència entre llista i conjunt
Una llista pot contenir elements duplicats, mentre que Set només conté elements únics.
Jerarquia de la classe HashSet
La classe HashSet amplia la classe AbstractSet que implementa la interfície Set. La interfície Set hereta les interfícies Col·lecció i Iterable en ordre jeràrquic.
Declaració de classe HashSet
Vegem la declaració de la classe java.util.HashSet.
quin any es va inventar l'ordinador
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Constructors de la classe Java HashSet
SN | Constructor | Descripció |
---|---|---|
1) | HashSet() | S'utilitza per construir un HashSet predeterminat. |
2) | HashSet (capacitat int) | S'utilitza per inicialitzar la capacitat del conjunt hash a la capacitat del valor enter donat. La capacitat creix automàticament a mesura que s'afegeixen elements al HashSet. |
3) | HashSet (capacitat int, factor de càrrega flotant) | S'utilitza per inicialitzar la capacitat del conjunt hash amb la capacitat del valor enter donat i el factor de càrrega especificat. |
4) | HashSet(Col·lecció c) | S'utilitza per inicialitzar el conjunt hash utilitzant els elements de la col·lecció c. |
Mètodes de la classe Java HashSet
Diversos mètodes de classe Java HashSet són els següents:
SN | Modificador i tipus | Mètode | Descripció |
---|---|---|---|
1) | booleà | afegir (E e) | S'utilitza per afegir l'element especificat a aquest conjunt si encara no està present. |
2) | buit | clar () | S'utilitza per eliminar tots els elements del conjunt. |
3) | objecte | clonar () | S'utilitza per retornar una còpia superficial d'aquesta instància de HashSet: els elements en si no es clonen. |
4) | booleà | conté (Objecte o) | S'utilitza per retornar true si aquest conjunt conté l'element especificat. |
5) | booleà | està buit() | S'utilitza per retornar true si aquest conjunt no conté cap element. |
6) | Iterador | iterador() | S'utilitza per retornar un iterador sobre els elements d'aquest conjunt. |
7) | booleà | eliminar (Objecte o) | S'utilitza per eliminar l'element especificat d'aquest conjunt si està present. |
8) | int | mida () | S'utilitza per retornar el nombre d'elements del conjunt. |
9) | Divisor | divisor () | S'utilitza per crear un Spliterator d'enquadernació tardana i de fallada ràpida sobre els elements del conjunt. |
Exemple de Java HashSet
Vegem un exemple senzill de HashSet. Tingueu en compte que els elements iteren en una col·lecció no ordenada.
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 de Java HashSet ignorant els elements duplicats
En aquest exemple, veiem que HashSet no permet elements duplicats.
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 de Java HashSet per eliminar elements
Aquí, veiem diferents maneres d'eliminar un element.
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'una altra col·lecció
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
Java HashSet Exemple: llibre
Vegem un exemple de HashSet on estem afegint llibres per configurar i imprimint tots els llibres.
tipus d'ordinador
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); } } }
Sortida:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
També et pot agradar:
Funcionament de HashSet a Java