A Java HashSet osztály olyan gyűjtemény létrehozására szolgál, amely hash táblát használ a tároláshoz. Megörökli az AbstractSet osztályt, és megvalósítja a Set interfészt.
A Java HashSet osztály legfontosabb pontjai a következők:
- A HashSet az elemeket egy úgynevezett mechanizmus segítségével tárolja kivonatolás.
- A HashSet csak egyedi elemeket tartalmaz.
- A HashSet null értéket engedélyez.
- A HashSet osztály nincs szinkronizálva.
- A HashSet nem tartja fenn a beillesztési sorrendet. Itt az elemek a hashkódjuk alapján kerülnek beszúrásra.
- A HashSet a legjobb módszer a keresési műveletekhez.
- A HashSet kezdeti alapértelmezett kapacitása 16, a terhelési tényező pedig 0,75.
Különbség a lista és a készlet között
A lista ismétlődő elemeket tartalmazhat, míg a készlet csak egyedi elemeket tartalmazhat.
A HashSet osztály hierarchiája
A HashSet osztály kiterjeszti az AbstractSet osztályt, amely megvalósítja a Set interfészt. A Set felület hierarchikus sorrendben örökli a Gyűjtemény és az Iterálható felületeket.
HashSet osztálydeklaráció
Lássuk a java.util.HashSet osztály deklarációját.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
A Java HashSet osztály konstruktőrei
SN | Konstruktőr | Leírás |
---|---|---|
1) | HashSet() | Ez egy alapértelmezett HashSet létrehozására szolgál. |
2) | HashSet (belső kapacitás) | A hash készlet kapacitásának inicializálására szolgál az adott egész értékű kapacitásra. A kapacitás automatikusan növekszik, amikor elemeket adnak a HashSethez. |
3) | HashSet(belső kapacitás, float loadFactor) | A hash készlet kapacitásának inicializálására szolgál az adott egész értékű kapacitásra és a megadott terhelési tényezőre. |
4) | HashSet (c gyűjtemény) | A hash-készlet inicializálására szolgál a c gyűjtemény elemeivel. |
A Java HashSet osztály módszerei
A Java HashSet osztály különféle módszerei a következők:
SN | Módosító és típus | Módszer | Leírás |
---|---|---|---|
1) | logikai érték | add (E e) | A megadott elem hozzáadására szolgál a halmazhoz, ha még nincs jelen. |
2) | üres | egyértelmű() | A készlet összes elemének eltávolítására szolgál. |
3) | tárgy | klón() | A HashSet példány sekély másolatának visszaadására szolgál: maguk az elemek nincsenek klónozva. |
4) | logikai érték | tartalmaz (O objektum) | Ha ez a halmaz tartalmazza a megadott elemet, akkor a true értékkel tér vissza. |
5) | logikai érték | üres() | Ha ez a halmaz nem tartalmaz elemeket, akkor az igazat adja vissza. |
6) | Iterátor | iterátor() | Egy iterátor visszaadására szolgál a halmaz elemei felett. |
7) | logikai érték | eltávolítás (O objektum) | A megadott elem eltávolítására szolgál ebből a halmazból, ha az jelen van. |
8) | int | méret() | A készlet elemeinek számának visszaadására szolgál. |
9) | Elosztó | osztó() | Késői kötésű és hibagyors Spliterator létrehozására szolgál a készlet elemei felett. |
Java HashSet példa
Lássunk egy egyszerű példát a HashSet-re. Figyeljük meg, az elemek egy rendezetlen gyűjteményben ismétlődnek.
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
Java HashSet példa, amely figyelmen kívül hagyja az ismétlődő elemeket
Ebben a példában azt látjuk, hogy a HashSet nem engedélyezi az elemek ismétlődését.
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
Java HashSet példa elemek eltávolítására
Itt különböző módokat látunk egy elem eltávolítására.
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 egy másik gyűjteményből
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 Példa: Könyv
Lássunk egy HashSet példát, ahol könyveket adunk hozzá, és kinyomtatjuk az összes könyvet.
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); } } }
Kimenet:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Még szintén kedvelheted:
stringek összehasonlítása javaA HashSet működése Java nyelven