Preberite, kaj je HashSet v Javi in ​​kako začeti z njim!



Ta članek o HashSetu na Javi vam bo dal popoln pregled, kaj točno je HashSet v Javi in ​​kako ga uporabiti. Govorila bo tudi o različnih metodah in konstruktorjih, ki jih podpira razred Java HashSet.

HashSet v Javi je eden najpomembnejših vidikov . Običajno se uporablja za shranjevanje edinstvenih vrednosti na neurejen način. Skozi medij tega članka o HashSet v Javi vam bom predstavil popolno predstavitev, kaj točno je HashSet in kako ga lahko uporabite v svoji aplikaciji.

Spodaj so teme, zajete v tem članku:





Začnimo s tem, da najprej razumemo, kaj so HashSet v Javi.

plitka kopija vs globoka kopija

HashSet v Javi



java.util.HashSet razred je član okvira zbirk Java, kipodeduje razred AbstractSet inizvajaNastavite vmesnik . Implicitno implementira razpršilno tablico za ustvarjanje in shranjevanje zbirke unikatnih elementov. Hashtable ni nič drugega kot primerek razreda HashMap, ki uporablja zgoščevalni mehanizem za shranjevanje informacij v HashSetu.

Razprševanje je postopek pretvorbe informacijske vsebine v edinstveno vrednost, ki je bolj znana kot hash code. Ta hashcode se nato uporablja za indeksiranje podatkov, povezanih s ključem. Celoten postopek pretvorbe informacijskega ključa v hashcode se izvede interno.

Zdaj za boljše razumevanje HashSet-a v Javi naj navedem nekaj njegovih lastnosti:



  1. HashSet v Javi ne dovoljuje podvojenih vrednosti.
  2. Vsebuje lahko ničelne vrednosti.
  3. HashSet ne sledi vrstnemu redu vstavljanja za shranjevanje podatkov, temveč uporablja hashcode za indeksiranje vrednosti znotraj.
  4. Ni sinhronizirano zaradi česar je samodejno varno pred nitmi.
  5. Razred HashSet izvaja tudi Cloneable inSerializirani vmesniki.

Zdaj, ko se zavedate, kaj točno je HashSet v Javi, nadaljujmo s tem člankom in demistificiramo razlike med HashMapom in HashSetom na Javi.

Java HashSet vs HashMap

HashSet HashMap
Izvajajava.util.Nastavite vmesnikIzvajajava.util.Map
Shrani podatke kot predmeteShrani podatke v obliki para ključ-vrednost
HashSet zahteva samo en parameter za inicializacijo svojega objektaZa inicializacijo objekta potrebuje dva parametra (ključ, vrednost)
Ne dovoli podvojenih elementovNe dovoli podvojenih ključev, vendar lahko shranite podvojene vrednosti
Omogoča eno vrednost ničOmogoča en null ključ in poljubno število ničelnih vrednosti
Uporabite HashSet add ()metoda za dodajanje ali shranjevanje podatkovHashMap za shranjevanje podatkov uporablja metodo put ()

Zdaj, ko imate jasno razliko med HashMapom in HashSetom, se zdaj spet osredotočimo na HashSet in se poglobimo vanj. V naslednjem razdelku tega članka vas bom seznanil s celotno hierarhijo HashSet v Javi.

HashSet Hierarchy v Javi

Kot lahko vidite iz spodnjega diagrama,Razred HashSet izvaja vmesnik Set. Vmesnik Set nadalje podeduje vmesnik Collection, ki sčasoma razširi vmesnik Iterable v hierarhičnem vrstnem redu.

Hierarhija Java HashSet - HashSet v Javi - Edureka

Zdaj, ko nadaljujemo s tem člankom HashSet v Javi, si oglejmo različne konstruktorji podpira ta razred.

Konstruktorji razreda java.util.HashSet

Graditelj Opis
HashSet () To je privzeti konstruktor razreda HashSet
HashSet (notranja zmogljivost) Ta konstruktor se uporablja za inicializacijo začetne zmogljivosti nabora zgoščenih podatkov. Zmogljivost lahko z dodajanjem novih elementov dinamično narašča
HashSet (int zmogljivost, float loadCapacity) Ta konstruktor se uporablja za inicializiranje začetne zmogljivosti razpršenega sklopa skupaj z nosilnostjo
HashSet (Zbirka c) Ta konstruktor se uporablja za inicializacijozgoščena nastavitev z uporabo elementov iz zbirke c

To so bili štirje konstruktorji razreda HashSet v . Zdaj ugotovimo, katere so različne definirano v Java HashSet.

Metode razreda java.util.HashSet

Metoda Opis
logični dodatek (objekt obj) Ta metoda pomaga pri dodajanju določenega elementa v HashSet le, če ni prisoten
prazno jasno () Ta metoda pomaga pri odstranjevanju vseh elementov iz HashSet-a
Klon predmeta () Ta metoda vrne plitvo kopijo primerka HashSet in ne klonov elementov HashSet
logična vrednost vsebuje (predmet o) Ta metoda vrne true, če je posredovani element prisoten v HashSetu
logična isEmpty () Ta metoda vrne true, če je HashSet prazen
Iterator iteratorja () Ta metoda vrne iterator nad elementi, ki so prisotni v HashSetu
logično odstranjevanje (objekt o) Ta metoda pomaga pri odstranjevanju določenega elementa iz HashSet-a, če je prisoten
velikost int () Ta metoda vrne skupno število elementov, ki so prisotni v HashSetu

Skupaj z zgoraj navedenimi metodami razred HashSet v Javi vsebuje tudi iz svojih superrazredov.

Poskusimo zdaj izvajati te metode in si namočimo noge s kodiranjem.

Implementacija HashSet v program Java

V spodnjem primeru bomo poskusili implementirati številne metode, ki jih ponuja razred HashSet.

import java.util.HashSet import java.util. * javni razred SampleHashSet {public static void main (String [] args) {// Ustvarjanje nabora HashSet eduCourses = new HashSet () // Dodajanje novih elementov v HashSet eduCourses.add ('Veliki podatki') 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') // Dodajanje podvojenih elementov bo prezrto eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Preverite, ali HashSet vsebuje določen element String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' je na seznamu tečajev. ')} else {System.out.println (myCourse +' ni na seznamu tečajev. ')} // Razvrščanje eduCourses z uporabo seznama List list = new ArrayList (eduCourses) Collections.sort (list) // Tiskanje razvrščenih elementov sistema HashSet System.out.println (' Tiskanje tečajev v razvrščenem vrstnem redu z uporabo seznama: '+ list) // Odstranjevanje elementov iz HashSet z uporabo remove () eduCourses.remove (' Python ') // Iteracija nad elementi HashSet System.out.println (' Iteracija nad seznamom tečajev po odstranitvi Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Ustvarjanje drugega predmeta HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Odstranjevanje vseh novih elementov iz HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Po klicu removeAll () preostali tečaji metode: '+ eduCourses) // Odstranjevanje elementov na podlagi določenega stanja eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Po klicu metode removeIf (): '+ eduCourses) // Odstranjevanje elementov iz eduCourses, ki so navedeni v eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'retainAll () operation: '+ eduNewCourses) // Odstranjevanje vseh elementov, ki so na voljo v nizu eduCourses.clear () System.out.println (' Po klicu metode clear (): '+ eduCourses)}}

Ko zaženete zgornjo kodo, vam bo dala spodaj prikazani izhod.

S tem smo prišli do konca tega članka. Upam, da sem uspel ohraniti jasne in jasne koncepte. Več o tem lahko izveste tako da gremo skozi naš .

Zdaj, ko ste razumeli, kaj je HashSet v Javi, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega članka »HashSet v Javi« in v najkrajšem možnem času vas bomo kontaktirali.