HashSet i Java er en av de viktigste aspektene av . Den brukes vanligvis til å lagre unike verdier på en uordnet måte. Gjennom mediet i denne artikkelen om HashSet i Java, vil jeg gi deg en fullstendig gjennomgang av hva som egentlig er et HashSet og hvordan du kan bruke det i applikasjonen din.
Nedenfor er emnene dekket i denne artikkelen:
- HashSet i Java
- Java HashSet vs HashMap
- HashSet-hierarki
- Konstruktører av java.util.HashSet Class
- Metoder for java.util.HashSet-klasse
- Implementering av HashSet i Java-programmet
La oss komme i gang med å først forstå hva som er HashSet i Java.
HashSet i Java
java.util.HashSet klasse er medlem av rammeverket for Java-samlinger somarver AbstractSet-klassen ogimplementererSett grensesnitt . Det implementerer implisitt en hashtable for å lage og lagre en samling unike elementer. Hashtable er ingenting annet enn en forekomst av HashMap-klassen som bruker en hashing-mekanisme for å lagre informasjonen i et HashSet.
Hashing er prosessen med å konvertere informasjonsinnholdet til en unik verdi som er mer kjent som hash-kode. Denne hashkoden brukes deretter til å indeksere dataene som er knyttet til nøkkelen. Hele prosessen med å transformere informasjonsnøkkelen til hashkoden utføres internt.
offentlig strengstreng ()
Nå for å få en bedre forståelse av HashSet i Java, la meg liste opp noen av funksjonene:
- Et HashSet i Java tillater ikke dupliserte verdier.
- Den kan inneholde nullverdier.
- HashSet følger ikke innsettingsrekkefølgen for lagring av dataene, men den bruker hashkoden for å indeksere verdiene i.
- Det er ikke- synkronisert som automatisk gjør det tråd-usikkert.
- HashSet-klassen implementerer også Cloneable ogSerialiserbare grensesnitt.
Nå som du er klar over hva som egentlig er HashSet i Java, la oss gå videre med denne artikkelen og avmystifisere forskjellene mellom HashMap og HashSet i Java.
Java HashSet vs HashMap
HashSet | HashMap |
Redskaperjava.util.Sett grensesnitt | Redskaperjava.util.Kart |
Lagrer data som objekter | Lagrer data i form av nøkkelverdipar |
HashSet krever bare én parameter for initialisering av objektet | Det krever to parametere (nøkkel, verdi) for objektinitialisering |
Tillater ikke dupliserte elementer | Tillater ikke dupliserte nøkler, men du kan lagre dupliserte verdier |
Tillater en enkelt nullverdi | Tillater en enkelt nullnøkkel og et hvilket som helst antall nullverdier |
HashSet bruk add ()metode for å legge til eller lagre data | HashMap bruker put () -metoden for lagring av data |
Nå som du har et klart skille mellom HashMap og HashSet, la oss nå fokusere på HashSet igjen og dykke dypere inn i det. I neste del av denne artikkelen vil jeg introdusere deg til det komplette hierarkiet til HashSet i Java.
HashSet-hierarki i Java
Som du kan se fra nedenstående diagram,HashSet-klassen implementerer Set-grensesnittet. Set-grensesnittet arver videre Collection-grensesnittet som til slutt utvider det Iterable-grensesnittet i en hierarkisk rekkefølge.
Nå som vi går videre med denne HashSet i Java-artikkelen, la oss sjekke ut de forskjellige konstruktører støttet av denne klassen.
Konstruktører av java.util.HashSet Class
Bygger | Beskrivelse |
HashSet () | Dette er standardkonstruktøren av HashSet-klassen |
HashSet (int kapasitet) | Denne konstruktøren brukes til å initialisere den opprinnelige kapasiteten til hash-settet. Kapasiteten kan vokse dynamisk med nye elementer |
HashSet (int kapasitet, float loadCapacity) | Denne konstruktøren brukes til å initialisere startkapasiteten til hash-settet sammen med lastekapasiteten |
HashSet (samling c) | Denne konstruktøren brukes til å initialiserehash-settet ved hjelp av elementene fra samling c |
Dette var de fire konstruktørene av HashSet-klassen i . La oss nå finne ut hva som er forskjellige definert i Java HashSet.
Metoder for java.util.HashSet-klasse
Metode | Beskrivelse |
boolean add (Object obj) | Denne metoden hjelper til med å legge til et spesifisert element i HashSet bare hvis det ikke er til stede |
ugyldig klar () | Denne metoden hjelper til med å fjerne alle elementene fra HashSet |
Objektklon () | Denne metoden returnerer en grunne kopi av HashSet-forekomsten i stedet for kloner av HashSet-elementene |
boolsk inneholder (Objekt o) | Denne metoden returnerer true hvis det passerte elementet er tilstede i HashSet |
boolsk isEmpty () | Denne metoden blir sant i tilfelle HashSet er tomt |
Iterator iterator () | Denne metoden returnerer en iterator over elementene i HashSet |
boolsk fjerning (Objekt o) | Denne metoden hjelper til med å fjerne det angitte elementet fra HashSet hvis det er til stede |
int størrelse () | Denne metoden returnerer det totale antallet elementer som er tilstede i HashSet |
Sammen med de ovennevnte metodene inneholder HashSet-klassen i Java også fra superklassene.
La oss nå prøve å implementere disse metodene og få føttene våre våte med koding.
adapterklasse i java med eksempel
Implementering av HashSet i Java-programmet
I eksemplet nedenfor vil vi prøve å implementere en rekke metoder levert av HashSet-klassen.
import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Opprette et HashSet-sett eduCourses = new HashSet () // Legge til nye elementer i 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') // Legge til dupliserte elementer ignoreres eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Sjekk om HashSet inneholder et bestemt element String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' er i kurslisten. ')} annet {System.out.println (myCourse +' er ikke i kurslisten. ')} // Sortering av eduCourses ved hjelp av List List list = new ArrayList (eduCourses) Collections.sort (list) // Skrive ut de sorterte elementene i HashSet System.out.println (' Skrive ut kursene i sortert rekkefølge ved hjelp av Liste: '+ liste) // Fjerne elementer fra HashSet ved hjelp av remove () eduCourses.remove (' Python ') // Iterere over HashSet-elementer System.out.println (' Iterere over kursliste etter fjerning Python: ') Iterator i = eduCourses.iterator () mens (i.hasNext ()) System.out.println (i.next ()) // Opprette et annet objekt av HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Fjerner alle de nye elementene fra HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Etter påkalling removeAll () metodekurs igjen: '+ eduCourses) // Fjerne elementer på grunnlag av spesifisert tilstand eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Etter påkalling av removeIf () -metoden: '+ eduCourses) // Fjerne elementer fra eduCourses som er spesifisert i eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet etter' + 'retainAll () -operasjon: '+ eduNewCourses) // Fjerne alle elementene som er tilgjengelige i settet eduCourses.clear () System.out.println (' Etter å ha påkalt clear () -metoden: '+ eduCourses)}}
Når du utfører ovennevnte kode, vil den gi deg den nedenfor viste utgangen.
Med dette kommer vi til slutten av denne artikkelen. Håper jeg klarte å holde konseptene skarpe og klare. Du kan lære mer om ved å gå gjennom vår .
Nå som du har forstått hva som er et HashSet i Java, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.
Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'HashSet i Java' -artikkelen, så kommer vi tilbake til deg så snart som mulig.