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:
- HashSet in Java
- Java HashSet versus HashMap
- HashSet-hiërarchie
- Constructeurs van java.util.HashSet Class
- Methoden van java.util.HashSet Class
- HashSet implementeren in Java-programma
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:
- Een HashSet in Java staat geen dubbele waarden toe.
- Het kan null-waarden bevatten.
- HashSet volgt niet de invoegvolgorde voor het opslaan van de gegevens, maar gebruikt de hashcode voor het indexeren van de waarden erin.
- Het is niet gesynchroniseerd waardoor het automatisch thread-onveilig wordt.
- 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 in | Werktuigenjava.util.Map |
Slaat gegevens op als objecten | Slaat gegevens op in de vorm van een sleutel / waarde-paar |
HashSet heeft slechts één parameter nodig voor de initialisatie van het object | Het vereist twee parameters (sleutel, waarde) voor de initialisatie van het object |
Staat geen dubbele elementen toe | Dubbele sleutels zijn niet toegestaan, maar u kunt dubbele waarden opslaan |
Staat een enkele null-waarde toe | Staat een enkele null-sleutel en een willekeurig aantal null-waarden toe |
HashSet gebruik add ()methode voor het toevoegen of opslaan van gegevens | HashMap 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.
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.