Klasa Java HashSet koristi se za stvaranje zbirke koja za pohranu koristi hash tablicu. Nasljeđuje klasu AbstractSet i implementira Set sučelje.
Važne točke o Java HashSet klasi su:
- HashSet pohranjuje elemente pomoću mehanizma tzv raspršivanje.
- HashSet sadrži samo jedinstvene elemente.
- HashSet dopušta nultu vrijednost.
- Klasa HashSet nije sinkronizirana.
- HashSet ne održava redoslijed umetanja. Ovdje se elementi ubacuju na temelju njihovog hashcode-a.
- HashSet je najbolji pristup za operacije pretraživanja.
- Početni zadani kapacitet HashSeta je 16, a faktor opterećenja je 0,75.
Razlika između popisa i skupa
Popis može sadržavati duplicirane elemente dok Set sadrži samo jedinstvene elemente.
gimp zamijeniti boju
Hijerarhija klase HashSet
Klasa HashSet proširuje klasu AbstractSet koja implementira Set sučelje. Sučelje Set nasljeđuje sučelja Collection i Iterable u hijerarhijskom redu.
Deklaracija klase HashSet
Pogledajmo deklaraciju za klasu java.util.HashSet.
graničnik java
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Konstruktori Java HashSet klase
S N | Konstruktor | Opis |
---|---|---|
1) | HashSet() | Koristi se za konstrukciju zadanog HashSeta. |
2) | HashSet (int kapacitet) | Koristi se za inicijalizaciju kapaciteta hash skupa na zadani kapacitet cjelobrojne vrijednosti. Kapacitet automatski raste kako se elementi dodaju u HashSet. |
3) | HashSet(int kapacitet, float loadfactor) | Koristi se za inicijalizaciju kapaciteta hash skupa na zadani kapacitet cjelobrojne vrijednosti i navedeni faktor opterećenja. |
4) | HashSet(kolekcija c) | Koristi se za inicijalizaciju hash skupa pomoću elemenata zbirke c. |
Metode Java HashSet klase
Različite metode Java HashSet klase su sljedeće:
S N | Modifikator i vrsta | metoda | Opis |
---|---|---|---|
1) | Booleov | dodati (E e) | Koristi se za dodavanje određenog elementa ovom skupu ako već nije prisutan. |
2) | poništiti | čisto() | Koristi se za uklanjanje svih elemenata iz skupa. |
3) | objekt | klon() | Koristi se za vraćanje plitke kopije ove instance HashSeta: sami elementi nisu klonirani. |
4) | Booleov | sadrži (objekt o) | Koristi se za vraćanje true ako ovaj skup sadrži navedeni element. |
5) | Booleov | prazno je() | Koristi se za vraćanje true ako ovaj skup ne sadrži elemente. |
6) | Iterator | iterator() | Koristi se za vraćanje iteratora preko elemenata u ovom skupu. |
7) | Booleov | ukloniti (objekt o) | Koristi se za uklanjanje navedenog elementa iz ovog skupa ako je prisutan. |
8) | int | veličina() | Koristi se za vraćanje broja elemenata u skupu. |
9) | Spliterator | razdjelnik() | Koristi se za stvaranje kasnog povezivanja i brzog spajanja nad elementima u skupu. |
Primjer Java HashSeta
Pogledajmo jednostavan primjer HashSeta. Primijetite, elementi se ponavljaju u neuređenoj kolekciji.
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
Primjer Java HashSeta koji zanemaruje duplikate elemenata
U ovom primjeru vidimo da HashSet ne dopušta duplicirane elemente.
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 primjer za uklanjanje elemenata
Ovdje vidimo različite načine uklanjanja 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 kolekcije
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 primjer: knjiga
Pogledajmo primjer HashSeta gdje dodajemo knjige u skup i ispisujemo sve knjige.
preimenuj u linux direktoriju
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); } } }
Izlaz:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Možda ti se također svidi:
Rad HashSeta u Javi