Razred Java HashSet se uporablja za ustvarjanje zbirke, ki za shranjevanje uporablja zgoščeno tabelo. Podeduje razred AbstractSet in implementira vmesnik Set.
Pomembne točke o razredu Java HashSet so:
- HashSet shrani elemente z uporabo mehanizma, imenovanega zgoščevanje.
- HashSet vsebuje samo edinstvene elemente.
- HashSet dovoljuje ničelno vrednost.
- Razred HashSet ni sinhroniziran.
- HashSet ne vzdržuje vrstnega reda vstavljanja. Tukaj so elementi vstavljeni na podlagi njihove hashcode.
- HashSet je najboljši pristop za iskalne operacije.
- Začetna privzeta zmogljivost HashSeta je 16, faktor obremenitve pa 0,75.
Razlika med seznamom in nizom
Seznam lahko vsebuje podvojene elemente, medtem ko Set vsebuje samo edinstvene elemente.
Hierarhija razreda HashSet
Razred HashSet razširja razred AbstractSet, ki implementira vmesnik Set. Vmesnik Set podeduje vmesnike Collection in Iterable v hierarhičnem vrstnem redu.
dolgo do niza java
Deklaracija razreda HashSet
Oglejmo si deklaracijo za razred java.util.HashSet.
cast int v niz java
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Konstruktorji razreda Java HashSet
SN | Konstruktor | Opis |
---|---|---|
1) | HashSet() | Uporablja se za izdelavo privzetega HashSeta. |
2) | HashSet (zmogljivost int) | Uporablja se za inicializacijo zmogljivosti zgoščenega nabora na podano zmogljivost celega števila. Zmogljivost samodejno raste, ko se elementi dodajajo v HashSet. |
3) | HashSet(int zmogljivost, float loadFactor) | Uporablja se za inicializacijo zmogljivosti zgoščenega nabora na dano zmogljivost celega števila in podani faktor obremenitve. |
4) | HashSet(Zbirka c) | Uporablja se za inicializacijo zgoščenega niza z uporabo elementov zbirke c. |
Metode razreda Java HashSet
Različne metode razreda Java HashSet so naslednje:
SN | Modifikator in tip | Metoda | Opis |
---|---|---|---|
1) | logično | dodati (E e) | Uporablja se za dodajanje določenega elementa v ta niz, če še ni prisoten. |
2) | praznina | počisti() | Uporablja se za odstranitev vseh elementov iz kompleta. |
3) | predmet | klon() | Uporablja se za vrnitev plitke kopije tega primerka HashSet: elementi sami niso klonirani. |
4) | logično | vsebuje (predmet o) | Uporablja se za vrnitev true, če ta niz vsebuje navedeni element. |
5) | logično | je prazno() | Uporablja se za vrnitev true, če ta niz ne vsebuje elementov. |
6) | Iterator | iterator() | Uporablja se za vrnitev iteratorja nad elementi v tem nizu. |
7) | logično | odstrani (predmet o) | Uporablja se za odstranitev določenega elementa iz tega niza, če je prisoten. |
8) | int | velikost () | Uporablja se za vrnitev števila elementov v nizu. |
9) | Spliterator | spliterator() | Uporablja se za ustvarjanje pozno vezave in hitrega razdelilnika nad elementi v nizu. |
Primer Java HashSet
Oglejmo si preprost primer HashSeta. Upoštevajte, elementi se ponavljajo v neurejeni zbirki.
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
Primer Java HashSet, ki ignorira podvojene elemente
V tem primeru vidimo, da HashSet ne dovoljuje podvojenih elementov.
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
Primer Java HashSet za odstranjevanje elementov
Tukaj vidimo različne načine za odstranitev elementa.
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 iz druge zbirke
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
Primer Java HashSet: knjiga
Oglejmo si primer HashSet, kjer dodajamo knjige v nabor in tiskamo vse knjige.
primeri vzorčne kode javascript
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); } } }
Izhod:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Morda vam bo všeč tudi:
Delovanje HashSeta v Javi