logo

Java HashSet

Hierarchia tried Java HashSet

Trieda Java HashSet sa používa na vytvorenie kolekcie, ktorá používa hašovaciu tabuľku na ukladanie. Zdedí triedu AbstractSet a implementuje rozhranie Set.

Dôležité body o triede Java HashSet sú:

  • HashSet ukladá prvky pomocou mechanizmu tzv hašovanie.
  • HashSet obsahuje iba jedinečné prvky.
  • HashSet umožňuje nulovú hodnotu.
  • Trieda HashSet nie je synchronizovaná.
  • HashSet neuchováva objednávku vloženia. Tu sa prvky vkladajú na základe ich hash kódu.
  • HashSet je najlepší prístup pre operácie vyhľadávania.
  • Počiatočná predvolená kapacita HashSet je 16 a faktor zaťaženia je 0,75.

Rozdiel medzi zoznamom a súborom

Zoznam môže obsahovať duplicitné prvky, zatiaľ čo Set obsahuje iba jedinečné prvky.

Hierarchia triedy HashSet

Trieda HashSet rozširuje triedu AbstractSet, ktorá implementuje rozhranie Set. Rozhranie Set dedí rozhrania Collection a Iterable v hierarchickom poradí.


Deklarácia triedy HashSet

Pozrime sa na deklaráciu pre triedu java.util.HashSet.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Konštruktory triedy Java HashSet

SN Konštruktér Popis
1) HashSet() Používa sa na vytvorenie predvoleného HashSet.
2) HashSet (int kapacita) Používa sa na inicializáciu kapacity množiny hash na danú kapacitu celej hodnoty. Kapacita sa automaticky zvyšuje s pridávaním prvkov do HashSet.
3) HashSet (int kapacita, float loadFactor) Používa sa na inicializáciu kapacity množiny hash na danú kapacitu celej hodnoty a zadaný faktor zaťaženia.
4) HashSet (kolekcia c) Používa sa na inicializáciu množiny hash pomocou prvkov kolekcie c.

Metódy triedy Java HashSet

Rôzne metódy triedy Java HashSet sú nasledovné:

SN Modifikátor a typ Metóda Popis
1) boolovská hodnota pridať (E e) Používa sa na pridanie špecifikovaného prvku do tejto množiny, ak ešte nie je prítomný.
2) neplatné jasný() Používa sa na odstránenie všetkých prvkov zo sady.
3) objekt klon() Používa sa na vrátenie plytkej kópie tejto inštancie HashSet: samotné prvky nie sú klonované.
4) boolovská hodnota obsahuje (Objekt o) Používa sa na vrátenie true, ak táto množina obsahuje špecifikovaný prvok.
5) boolovská hodnota je prázdny() Používa sa na vrátenie true, ak táto množina neobsahuje žiadne prvky.
6) Iterátor iterátor() Používa sa na vrátenie iterátora nad prvkami v tejto množine.
7) boolovská hodnota odstrániť (Objekt o) Používa sa na odstránenie špecifikovaného prvku z tejto množiny, ak je prítomný.
8) int veľkosť () Používa sa na vrátenie počtu prvkov v množine.
9) Rozdeľovač rozdeľovač() Používa sa na vytvorenie neskoro viazaného a rýchleho rozdeľovača nad prvkami v súprave.

Príklad Java HashSet

Pozrime sa na jednoduchý príklad HashSet. Všimnite si, že prvky sa opakujú v neusporiadanej kolekcii.

 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 

Príklad Java HashSet ignorujúci duplicitné prvky

V tomto príklade vidíme, že HashSet nepovoľuje duplicitné prvky.

 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 

Príklad Java HashSet na odstránenie prvkov

Tu vidíme rôzne spôsoby odstránenia prvku.

 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 z inej kolekcie

 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 

Príklad Java HashSet: Kniha

Pozrime sa na príklad HashSet, kde pridávame knihy na nastavenie a tlačíme všetky knihy.

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

Výkon:

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

Tiež sa ti môže páčiť:

Fungovanie HashSet v Jave