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:
- HashSet v Javi
- Java HashSet vs HashMap
- HashSet Hierarchy
- Konstruktorji razreda java.util.HashSet
- Metode razreda java.util.HashSet
- Implementacija HashSet v program Java
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:
- HashSet v Javi ne dovoljuje podvojenih vrednosti.
- Vsebuje lahko ničelne vrednosti.
- HashSet ne sledi vrstnemu redu vstavljanja za shranjevanje podatkov, temveč uporablja hashcode za indeksiranje vrednosti znotraj.
- Ni sinhronizirano zaradi česar je samodejno varno pred nitmi.
- 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 vmesnik | Izvajajava.util.Map |
Shrani podatke kot predmete | Shrani podatke v obliki para ključ-vrednost |
HashSet zahteva samo en parameter za inicializacijo svojega objekta | Za inicializacijo objekta potrebuje dva parametra (ključ, vrednost) |
Ne dovoli podvojenih elementov | Ne 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 podatkov | HashMap 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.
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.