logo

Java HashSet

Java HashSet klassehierarki

Java HashSet-klassen brukes til å lage en samling som bruker en hashtabell for lagring. Den arver AbstractSet-klassen og implementerer Set-grensesnittet.

De viktige punktene om Java HashSet-klassen er:

  • HashSet lagrer elementene ved å bruke en mekanisme kalt hashing.
  • HashSet inneholder bare unike elementer.
  • HashSet tillater nullverdi.
  • HashSet-klassen er ikke synkronisert.
  • HashSet opprettholder ikke innsettingsrekkefølgen. Her settes elementer inn på grunnlag av deres hashkode.
  • HashSet er den beste tilnærmingen for søkeoperasjoner.
  • Den opprinnelige standardkapasiteten til HashSet er 16, og belastningsfaktoren er 0,75.

Forskjellen mellom List og Set

En liste kan inneholde dupliserte elementer, mens sett bare inneholder unike elementer.

Hierarki av HashSet-klassen

HashSet-klassen utvider AbstractSet-klassen som implementerer Set-grensesnittet. Set-grensesnittet arver innsamlings- og iterable-grensesnitt i hierarkisk rekkefølge.


HashSet-klasseerklæring

La oss se erklæringen for java.util.HashSet-klassen.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Konstruktører av Java HashSet-klassen

SN Konstruktør Beskrivelse
1) HashSet() Det brukes til å konstruere et standard HashSet.
2) HashSet (int kapasitet) Den brukes til å initialisere kapasiteten til hash-settet til den gitte heltallsverdikapasiteten. Kapasiteten vokser automatisk etter hvert som elementer legges til HashSet.
3) HashSet(int kapasitet, float loadFactor) Den brukes til å initialisere kapasiteten til hash-settet til den gitte heltallsverdikapasiteten og den spesifiserte lastfaktoren.
4) HashSet (Samling c) Den brukes til å initialisere hash-settet ved å bruke elementene i samlingen c.

Metoder for Java HashSet-klassen

Ulike metoder for Java HashSet-klassen er som følger:

SN Modifikator og type Metode Beskrivelse
1) boolsk legg til(E e) Den brukes til å legge til det angitte elementet til dette settet hvis det ikke allerede er til stede.
2) tomrom klar() Den brukes til å fjerne alle elementene fra settet.
3) gjenstand klone() Den brukes til å returnere en grunn kopi av denne HashSet-forekomsten: selve elementene er ikke klonet.
4) boolsk inneholder(Objekt o) Den brukes til å returnere true hvis dette settet inneholder det spesifiserte elementet.
5) boolsk er tom() Den brukes til å returnere sann hvis dette settet ikke inneholder noen elementer.
6) Iterator iterator() Den brukes til å returnere en iterator over elementene i dette settet.
7) boolsk fjern (Objekt o) Den brukes til å fjerne det angitte elementet fra dette settet hvis det er til stede.
8) int størrelse() Den brukes til å returnere antall elementer i settet.
9) Spliterator splitter() Den brukes til å lage en sent-bindende og feil-rask Spliterator over elementene i settet.

Eksempel på Java HashSet

La oss se et enkelt eksempel på HashSet. Legg merke til at elementene itererer i en uordnet samling.

 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 eksempel ignorerer dupliserte elementer

I dette eksemplet ser vi at HashSet ikke tillater dupliserte elementer.

 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 eksempel for å fjerne elementer

Her ser vi forskjellige måter å fjerne et element på.

 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 fra en annen samling

 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 Eksempel: Bok

La oss se et HashSet-eksempel der vi legger til bøker for å sette og skriver ut alle bøkene.

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

Produksjon:

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

Du vil kanskje også like:

Arbeid av HashSet i Java