Leer wat HashSet in Java is en hoe u ermee aan de slag kunt!



Dit artikel over HashSet in Java geeft je een compleet overzicht van wat HashSet in Java precies is en hoe je het kunt implementeren. Het zal ook praten over de verschillende methoden en constructors die worden ondersteund door de Java HashSet-klasse.

HashSet in Java is een van de belangrijkste aspecten van . Het wordt doorgaans gebruikt om unieke waarden op een ongeordende manier op te slaan. Door middel van dit artikel over HashSet in Java, zal ik u een volledig overzicht geven van wat precies een HashSet is en hoe u deze in uw applicatie kunt gebruiken.

Hieronder staan ​​de onderwerpen die in dit artikel worden behandeld:





Laten we beginnen door eerst te begrijpen wat HashSet in Java is.

HashSet in Java



java.util.HashSet klasse is een lid van het Java-verzamelingsraamwerk daterft de klasse AbstractSet enimplementeert hetSet koppel . Het implementeert impliciet een hashtabel voor het maken en opslaan van een verzameling unieke elementen. Hashtable is niets anders dan een instantie van de klasse HashMap die een hash-mechanisme gebruikt voor het opslaan van de informatie in een HashSet.

Hashing is het proces waarbij de informatieve inhoud wordt omgezet in een unieke waarde die beter bekend staat als hashcode. Deze hashcode wordt vervolgens gebruikt voor het indexeren van de gegevens die bij de sleutel horen. Het hele proces van het omzetten van de informatiesleutel in de hashcode wordt intern uitgevoerd.

Voor een beter begrip van HashSet in Java, wil ik een paar van de functies noemen:



  1. Een HashSet in Java staat geen dubbele waarden toe.
  2. Het kan null-waarden bevatten.
  3. HashSet volgt niet de invoegvolgorde voor het opslaan van de gegevens, maar gebruikt de hashcode voor het indexeren van de waarden erin.
  4. Het is niet gesynchroniseerd waardoor het automatisch thread-onveilig wordt.
  5. De klasse HashSet implementeert ook Cloneable enSerialiseerbare interfaces.

Nu u weet wat HashSet in Java precies is, gaan we verder met dit artikel en de verschillen tussen HashMap en HashSet in Java ontrafelen.

Java HashSet versus HashMap

HashSet Hash kaart
Werktuigenjava.util.Stel interface inWerktuigenjava.util.Map
Slaat gegevens op als objectenSlaat gegevens op in de vorm van een sleutel / waarde-paar
HashSet heeft slechts één parameter nodig voor de initialisatie van het objectHet vereist twee parameters (sleutel, waarde) voor de initialisatie van het object
Staat geen dubbele elementen toeDubbele sleutels zijn niet toegestaan, maar u kunt dubbele waarden opslaan
Staat een enkele null-waarde toeStaat een enkele null-sleutel en een willekeurig aantal null-waarden toe
HashSet gebruik add ()methode voor het toevoegen of opslaan van gegevensHashMap gebruikt de methode put () voor het opslaan van gegevens

Nu je een duidelijk onderscheid hebt tussen HashMap en HashSet, laten we ons nu weer concentreren op HashSet en er dieper op ingaan. In het volgende gedeelte van dit artikel laat ik je kennismaken met de volledige hiërarchie van HashSet in Java.

wat doet een scanner in java

HashSet-hiërarchie in Java

Zoals u kunt zien in het onderstaande diagram,De klasse HashSet implementeert de Set-interface. De Set-interface erft verder de Collection-interface die uiteindelijk de itereerbare interface in een hiërarchische volgorde uitbreidt.

Java HashSet-hiërarchie - HashSet in Java - Edureka

Laten we, nu we verder gaan met dit HashSet in Java-artikel, de verschillende bekijken constructeurs ondersteund door deze klasse.

Constructeurs van java.util.HashSet Class

Bouwer Omschrijving
HashSet () Dit is de standaardconstructor van de klasse HashSet
HashSet (int capaciteit) Deze constructor wordt gebruikt om de initiële capaciteit van de hash-set te initialiseren. Door toevoeging van nieuwe elementen kan de capaciteit dynamisch groeien
HashSet (int capacity, float loadCapacity) Deze constructor wordt gebruikt om de initiële capaciteit van de hash-set samen met de laadcapaciteit te initialiseren
HashSet (Collectie c) Deze constructor wordt gebruikt om te initialiserende hash-set met behulp van de elementen uit Collection c

Dit waren de vier constructeurs van de HashSet-klasse in . Laten we nu eens kijken wat de verschillende zijn gedefinieerd in Java HashSet.

Methoden van java.util.HashSet Class

Methode Omschrijving
boolean add (Object obj) Deze methode helpt bij het toevoegen van een gespecificeerd element aan de HashSet, alleen als het niet aanwezig is
leegte duidelijk () Deze methode helpt bij het verwijderen van alle elementen uit HashSet
Object kloon () Deze methode retourneert een ondiepe kopie van de HashSet-instantie in plaats van klonen van de HashSet-elementen
boolean bevat (Object o) Deze methode retourneert true als het doorgegeven element aanwezig is in de HashSet
boolean isEmpty () Deze methode retourneert true als de HashSet leeg is
Iterator iterator () Deze methode retourneert een iterator over de elementen die aanwezig zijn in de HashSet
boolean remove (Object o) Deze methode helpt bij het verwijderen van het opgegeven element uit de HashSet als dit aanwezig is
int maat () Deze methode retourneert het totale aantal elementen dat aanwezig is in de HashSet

Naast de hierboven vermelde methoden bevat de klasse HashSet in Java ook de van zijn superklassen.

Laten we nu proberen deze methoden te implementeren en onze voeten nat te maken met codering.

HashSet implementeren in Java-programma

In het onderstaande voorbeeld zullen we proberen een aantal methoden te implementeren die door de klasse HashSet worden geboden.

import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Een HashSet-set maken eduCourses = new HashSet () // Nieuwe elementen toevoegen aan de 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') // Het toevoegen van dubbele elementen wordt genegeerd eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Controleer of de HashSet een specifiek element bevat String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' staat in de cursuslijst. ')} else {System.out.println (myCourse +' staat niet in de cursuslijst. ')} // EduCourses sorteren met behulp van de lijstlijst list = new ArrayList (eduCourses) Collections.sort (lijst) // Afdrukken van de gesorteerde elementen van het HashSet System.out.println (' De cursussen in gesorteerde volgorde afdrukken met behulp van List: '+ list) // Items uit HashSet verwijderen met remove () eduCourses.remove (' Python ') // Itereren over HashSet-items System.out.println (' Iterating over course list after remove Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Een ander object van HashSet maken HashSet eduNewCourses = nieuwe HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Alle nieuwe elementen verwijderen uit HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Na het aanroepen van removeAll () methode cursussen over: '+ eduCourses) // Verwijderen van elementen op basis van gespecificeerde voorwaarde eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Na aanroepen removeIf () methode: '+ eduCourses) // Elementen verwijderen uit eduCourses die zijn gespecificeerd in eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'behoudenAll () bewerking: '+ eduNewCourses) // Alle elementen verwijderen die beschikbaar zijn in de set eduCourses.clear () System.out.println (' Na het aanroepen van clear () methode: '+ eduCourses)}}

Wanneer u de bovenstaande code uitvoert, krijgt u de hieronder weergegeven uitvoer.

Hiermee komen we aan het einde van dit artikel. Ik hoop dat ik de concepten helder en duidelijk heb kunnen houden. U kunt er meer over leren door onze .

Nu je hebt begrepen wat een HashSet in Java is, kun je het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel de kern als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het alstublieft in het commentaargedeelte van dit 'HashSet in Java' -artikel en we nemen zo snel mogelijk contact met u op.