logo

Java HashSet

Java HashSet hijerarhija klasa

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