logo

Java HashSet

Java HashSet klassehierarki

Java HashSet-klassen bruges til at oprette en samling, der bruger en hash-tabel til opbevaring. Det arver AbstractSet-klassen og implementerer Set-grænsefladen.

De vigtige punkter om Java HashSet-klassen er:

  • HashSet gemmer elementerne ved at bruge en mekanisme kaldet hashing.
  • HashSet indeholder kun unikke elementer.
  • HashSet tillader null-værdi.
  • HashSet-klassen er ikke-synkroniseret.
  • HashSet opretholder ikke indsættelsesrækkefølgen. Her indsættes elementer på baggrund af deres hashkode.
  • HashSet er den bedste tilgang til søgeoperationer.
  • Den oprindelige standardkapacitet for HashSet er 16, og belastningsfaktoren er 0,75.

Forskellen mellem List og Set

En liste kan indeholde duplikerede elementer, mens sæt kun indeholder unikke elementer.

Hierarki af HashSet-klassen

HashSet-klassen udvider AbstractSet-klassen, som implementerer Set-grænsefladen. Set-grænsefladen arver Collection og Iterable-grænseflader i hierarkisk rækkefølge.


HashSet-klassedeklaration

Lad os se erklæringen for java.util.HashSet-klassen.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Konstruktører af Java HashSet-klassen

SN Konstruktør Beskrivelse
1) HashSet() Det bruges til at konstruere et standard HashSet.
2) HashSet (int kapacitet) Det bruges til at initialisere hashsættets kapacitet til den givne heltalsværdikapacitet. Kapaciteten vokser automatisk, efterhånden som elementer tilføjes til HashSet.
3) HashSet(int kapacitet, float loadFactor) Det bruges til at initialisere hash-sættets kapacitet til den givne heltalsværdikapacitet og den specificerede belastningsfaktor.
4) HashSet (Samling c) Det bruges til at initialisere hashsættet ved at bruge elementerne i samlingen c.

Metoder til Java HashSet-klassen

Forskellige metoder til Java HashSet-klassen er som følger:

SN Modifikator og type Metode Beskrivelse
1) boolesk tilføje(E e) Det bruges til at tilføje det angivne element til dette sæt, hvis det ikke allerede er til stede.
2) ugyldig klar() Det bruges til at fjerne alle elementer fra sættet.
3) objekt klone() Det bruges til at returnere en overfladisk kopi af denne HashSet-instans: selve elementerne klones ikke.
4) boolesk indeholder (Objekt o) Det bruges til at returnere sand, hvis dette sæt indeholder det angivne element.
5) boolesk er tom() Det bruges til at returnere sand, hvis dette sæt ikke indeholder nogen elementer.
6) Iterator iterator() Det bruges til at returnere en iterator over elementerne i dette sæt.
7) boolesk fjern (Objekt o) Det bruges til at fjerne det angivne element fra dette sæt, hvis det er til stede.
8) int størrelse() Det bruges til at returnere antallet af elementer i sættet.
9) Spliterator splitter() Det bruges til at skabe en sent-bindende og fejl-hurtig Spliterator over elementerne i sættet.

Eksempel på Java HashSet

Lad os se et simpelt eksempel på HashSet. Bemærk, elementerne 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 duplikerede elementer

I dette eksempel ser vi, at HashSet ikke tillader duplikerede 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 at fjerne elementer

Her ser vi forskellige måder at 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 anden 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: Bog

Lad os se et HashSet-eksempel, hvor vi tilføjer bøger for at sætte og udskriver alle bøgerne.

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

Produktion:

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

Du kan måske også lide:

Arbejde med HashSet i Java