Lær, hvad der er HashSet i Java, og hvordan du kommer i gang med det!



Denne artikel om HashSet i Java giver dig et komplet overblik over, hvad der præcist er HashSet i Java, og hvordan du implementerer det. Det vil også tale om de forskellige metoder og konstruktører, der understøttes af Java HashSet-klassen.

HashSet i Java er et af de vigtigste aspekter af . Det bruges typisk til at gemme unikke værdier på en ikke-ordnet måde. Gennem mediet i denne artikel om HashSet i Java giver jeg dig en komplet gennemgang af, hvad der nøjagtigt er et HashSet, og hvordan du kan bruge det i din applikation.

Nedenfor er emnerne i denne artikel:





Lad os komme i gang med først at forstå, hvad der er HashSet i Java.

HashSet i Java



java.util.HashSet klasse er medlem af Java-samlerammen, somarver klassen AbstractSet ogimplementererSæt interface . Det implementerer implicit en hashtable til at oprette og lagre en samling af unikke elementer. Hashtable er intet andet end en forekomst af HashMap-klassen, der bruger en hashing-mekanisme til lagring af oplysningerne i et HashSet.

Hashing er processen med at konvertere informationsindholdet til en unik værdi, der mere populært er kendt som hash-kode. Denne hashcode bruges derefter til indeksering af de data, der er knyttet til nøglen. Hele processen med at omdanne informationsnøglen til hashkoden udføres internt.

Nu for en bedre forståelse af HashSet i Java, lad mig liste ned et par af dens funktioner:



  1. Et HashSet i Java tillader ikke duplikatværdier.
  2. Det kan indeholde nulværdier.
  3. HashSet følger ikke indsætningsrækkefølgen for lagring af dataene, men den bruger hashkoden til at indeksere værdierne indeni.
  4. Det er ikke- synkroniseret hvilket automatisk gør det tråd-usikkert.
  5. HashSet-klassen implementerer også Cloneable ogSerialiserbare grænseflader.

Nu hvor du er opmærksom på, hvad der præcist er HashSet i Java, lad os gå videre med denne artikel og afmystificere forskellene mellem HashMap og HashSet i Java.

Java HashSet vs HashMap

HashSet HashMap
Redskaberjava.util.Indstil grænsefladeRedskaberjava.util.Map
Gemmer data som objekterGemmer data i form af nøgleværdipar
HashSet kræver kun en parameter for dets initialisering af objektetDet kræver to parametre (nøgle, værdi) for dets initialisering af objektet
Tillader ikke duplikatelementerTillader ikke duplikatnøgler, men du kan gemme duplikatværdier
Tillader en enkelt nulværdiTillader en enkelt nul-nøgle og et vilkårligt antal nulværdier
HashSet brug add ()metode til tilføjelse eller lagring af dataHashMap brug put () -metoden til lagring af data

Nu hvor du har en klar skelnen mellem HashMap og HashSet, skal vi nu fokusere på HashSet igen og dykke dybere ned i det. I det næste afsnit af denne artikel introducerer jeg dig til det komplette hierarki af HashSet i Java.

HashSet-hierarki i Java

Som du kan se fra nedenstående diagram,HashSet-klassen implementerer Set-grænsefladen. Set-grænsefladen arver yderligere Collection-grænsefladen, som til sidst udvider den Iterable interface i en hierarkisk rækkefølge.

Java HashSet Hierarchy - HashSet i Java - Edureka

Lad os nu se på de forskellige, når vi går videre med denne HashSet i Java-artikel konstruktører understøttet af denne klasse.

Konstruktører af java.util.HashSet klasse

Bygger Beskrivelse
HashSet () Dette er standardkonstruktøren af ​​HashSet-klassen
HashSet (int kapacitet) Denne konstruktør bruges til at initialisere hash-sætets indledende kapacitet. Kapaciteten kan vokse dynamisk med tilføjelsen af ​​nye elementer
HashSet (int-kapacitet, float loadCapacity) Denne konstruktør bruges til at initialisere den indledende kapacitet af hashsættet sammen med belastningskapaciteten
HashSet (samling c) Denne konstruktør bruges til at initialiserehash-sæt ved hjælp af elementerne fra samling c

Disse var de fire konstruktører af HashSet-klassen i . Lad os nu finde ud af, hvad der er forskellige defineret i Java HashSet.

hvordan man finder det største antal i array java

Metoder til java.util.HashSet-klasse

Metode Beskrivelse
boolsk tilføjelse (Objektobjekt) Denne metode hjælper kun med at tilføje et bestemt element til HashSet, hvis det ikke er til stede
ugyldigt klart () Denne metode hjælper med at fjerne alle elementerne fra HashSet
Objektklon () Denne metode returnerer en lav kopi af HashSet-forekomsten snarere end kloner af HashSet-elementerne
boolsk indeholder (Objekt o) Denne metode returnerer sand, hvis det beståede element er til stede i HashSet
boolsk isEmpty () Denne metode returnerer sand, hvis HashSet er tomt
Iterator iterator () Denne metode returnerer en iterator over de elementer, der findes i HashSet
boolsk fjernelse (Objekt o) Denne metode hjælper med at fjerne det angivne element fra HashSet, hvis det er til stede
int størrelse () Denne metode returnerer det samlede antal elementer, der findes i HashSet

Sammen med de ovennævnte metoder indeholder HashSet-klassen i Java også fra dens superklasser.

Lad os nu prøve at implementere disse metoder og få vores fødder våde med kodning.

Implementering af HashSet i Java-programmet

I nedenstående eksempel vil vi prøve at implementere en række metoder leveret af HashSet-klassen.

import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Oprettelse af et HashSet-sæt eduCourses = new HashSet () // Tilføjelse af nye elementer til HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Tilføjelse af duplikatelementer ignoreres eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Kontroller, om HashSet indeholder et specifikt element String myCourse = 'Node.js', hvis (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' er på kurslisten. ')} ellers {System.out.println (myCourse +' er ikke på kurslisten. ')} // Sortering af eduCourses ved hjælp af listen List list = new ArrayList (eduCourses) Collections.sort (list) // Udskrivning af de sorterede elementer i HashSet System.out.println (' Udskrivning af kurser i sorteret rækkefølge ved hjælp af Liste: '+ liste) // Fjernelse af emner fra HashSet ved hjælp af remove () eduCourses.remove (' Python ') // Iterering over HashSet-emner System.out.println (' Iteration over kursliste efter fjernelse Python: ') Iterator i = eduCourses.iterator () mens (i.hasNext ()) System.out.println (i.next ()) // Oprettelse af et andet objekt af HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Fjernelse af alle de nye elementer fra HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Efter påkald af removeAll () metode kurser tilbage: '+ eduCourses) // Fjernelse af elementer på basis af specificeret tilstand eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Efter påkaldelse af removeIf () metode: '+ eduCourses) // Fjernelse af elementer fra eduCourses, som er specificeret i eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet efter' + 'retainAll () -funktion: '+ eduNewCourses) // Fjernelse af alle tilgængelige elementer i det indstillede eduCourses.clear () System.out.println (' Efter påkaldelse af clear () metode: '+ eduCourses)}}

Når du udfører ovenstående kode, giver den dig nedenstående output.

Med dette kommer vi til slutningen af ​​denne artikel. Håber, at jeg var i stand til at holde begreberne klare og klare. Du kan lære mere om ved at gå gennem vores .

Nu hvor du har forstået, hvad der er et HashSet i Java, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne “HashSet i Java” -artikel, og vi vender tilbage til dig hurtigst muligt.