Naučte sa, čo je HashSet v Jave a ako s ním začať!



Tento článok o HashSet v Jave vám poskytne kompletný prehľad o tom, čo presne je HashSet v Jave a ako ho implementovať. Bude tiež hovoriť o rôznych metódach a konštruktoroch podporovaných triedou Java HashSet.

HashSet v Jave je jedným z najdôležitejších aspektov . Spravidla sa používa na ukladanie jedinečných hodnôt neusporiadaným spôsobom. Prostredníctvom tohto článku o HashSet v Jave vám poskytnem kompletný návod na to, čo presne je HashSet a ako ho môžete použiť vo svojej aplikácii.

Ďalej sú uvedené témy, ktorým sa tento článok venuje:





Začnime tým, že najskôr pochopíme, čo je HashSet v Jave.

HashSet v Jave



java.util.HashSet trieda je členom rámca zbierok Java, ktorýdedí triedu AbstractSet arealizujeNastaviť rozhranie . Implicitne implementuje hashtable na vytváranie a ukladanie kolekcie jedinečných prvkov. Hashtable nie je nič iné ako inštancia triedy HashMap, ktorá používa hashovací mechanizmus na ukladanie informácií v rámci HashSet.

Hašovanie je proces premeny informačného obsahu na jedinečnú hodnotu, ktorá je populárnejšie známa ako hašovací kód. Tento hashcode sa potom použije na indexovanie údajov spojených s kľúčom. Celý proces transformácie informačného kľúča do hašovacieho kódu sa vykonáva interne.

Teraz, aby som lepšie pochopil HashSet v Jave, dovoľte mi uviesť niekoľko jeho funkcií:



  1. HashSet v Jave neumožňuje duplicitné hodnoty.
  2. Môže obsahovať nulové hodnoty.
  3. HashSet nedodržiava poradie vloženia na ukladanie údajov, ale na indexovanie hodnôt v ňom používa hashcode.
  4. To nie je synchronizované vďaka čomu je automaticky nebezpečný pre vlákna.
  5. Trieda HashSet tiež implementuje Cloneable aSerializovateľné rozhrania.

Teraz, keď ste si vedomí toho, čo presne je HashSet v Jave, poďme s týmto článkom ďalej a ukážme si rozdiely medzi HashMap a HashSet v Jave.

Java HashSet vs HashMap

HashSet HashMap
Plneniejava.util.Nastaviť rozhraniePlneniejava.util.Map
Ukladá údaje ako objektyUkladá údaje vo forme páru kľúč - hodnota
HashSet vyžaduje na inicializáciu objektu iba jeden parameterPre svoju inicializáciu objektu vyžaduje dva parametre (kľúč, hodnota)
Nepovoluje duplicitné prvkyNepovoluje duplicitné kľúče, môžete však uložiť duplicitné hodnoty
Umožňuje jednu nulovú hodnotuUmožňuje jeden nulový kľúč a ľubovoľný počet nulových hodnôt
HashSet použitie add ()spôsob pridávania alebo ukladania údajovHashMap používa metódu put () na ukladanie údajov

Teraz, keď máte jasný rozdiel medzi HashMap a HashSet, poďme sa teraz zamerať na HashSet znova a ponorme sa do toho hlbšie. V ďalšej časti tohto článku vám predstavím úplnú hierarchiu HashSet v Jave.

HashSet Hierarchia v Jave

Ako je zrejmé z nižšie uvedeného diagramu,Trieda HashSet implementuje rozhranie Set. Rozhranie Set ďalej dedí rozhranie Collection, ktoré nakoniec rozširuje Iterovateľné rozhranie v hierarchickom poradí.

prejsť odkazom v jave

Hierarchia Java HashSet - sada HashSet v jazyku Java - Edureka

Teraz, keď pokračujeme v tomto článku o HashSet v Jave, pozrime sa na rôzne konštruktéri podporované touto triedou.

Konštruktéri triedy java.util.HashSet

Staviteľ Popis
HashSet () Toto je predvolený konštruktor triedy HashSet
HashSet (int kapacita) Tento konštruktor sa používa na inicializáciu počiatočnej kapacity množiny hash. Kapacita môže dynamicky rásť s pridaním nových prvkov
HashSet (int kapacita, float loadCapacity) Tento konštruktor sa používa na inicializáciu počiatočnej kapacity sady hash spolu s nosnosťou
HashSet (kolekcia c) Tento konštruktor sa používa na inicializáciuhash nastavený pomocou prvkov z kolekcie c

Boli to štyria konštruktéri triedy HashSet v roku . Poďme teraz zistiť, čo sú rôzne definované v Java HashSet.

Metódy triedy java.util.HashSet

Metóda Popis
boolean add (Object obj) Táto metóda pomáha pri pridávaní zadaného prvku do sady HashSet, iba ak nie je prítomný
prázdnota clear () Táto metóda pomáha pri odstraňovaní všetkých prvkov z HashSet
Klon objektu () Táto metóda vracia plytkú kópiu inštancie HashSet, nie klony prvkov HashSet
boolean obsahuje (Objekt o) Táto metóda vráti hodnotu true, ak je odovzdaný prvok prítomný v HashSet
boolean isEmpty () Táto metóda vráti hodnotu true v prípade, že je sada HashSet prázdna
Iterátor iterátor () Táto metóda vracia iterátor nad prvkami prítomnými v HashSet
boolean remove (Objekt o) Táto metóda pomáha pri odstránení určeného prvku z HashSet, ak je prítomný
veľkosť int () Táto metóda vráti celkový počet prvkov prítomných v HashSet

Spolu s vyššie uvedenými metódami obsahuje trieda HashSet v Jave aj z jeho nadtried.

Skúsme teraz implementovať tieto metódy a namočíme si nohy programovaním.

Implementácia HashSet v programe Java

V nasledujúcom príklade sa pokúsime implementovať množstvo metód poskytovaných triedou HashSet.

import java.util.HashSet import java.util. * verejná trieda SampleHashSet {public static void main (String [] args) {// Vytvorenie množiny HashSet eduCourses = new HashSet () // Pridanie nových prvkov do HashSet eduCourses.add („Veľké dáta“) 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') // Pridanie duplicitných prvkov bude ignorované eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Skontrolujte, či HashSet obsahuje konkrétny prvok String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' je v zozname kurzov. ')} else {System.out.println (myCourse +' nie je v zozname kurzov. ')} // Triedenie eduCourses pomocou Zoznamu zoznamov zoznam = nový ArrayList (eduCourses) Collections.sort (zoznam) // Tlač zoradených prvkov HashSet System.out.println (' Tlač kurzov v zoradenom poradí pomocou Zoznamu: '+ zoznam) // Odstránenie položiek z HashSetu pomocou remove () eduCourses.remove (' Python ') // Iterácia nad položkami HashSet System.out.println (' Iterácia nad zoznamom kurzov po odstránení Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Vytvorenie ďalšieho objektu HashSet HashSet eduNewCourses = nový HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Odstránenie všetkých nových prvkov z HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Po vyvolaní removeAll () zostávajúce kurzy metód: '+ eduCourses) // Odstránenie prvkov na základe zadanej podmienky eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Po vyvolaní metódy removeIf (): '+ eduCourses) // Odstránenie prvkov z eduCourses, ktoré sú uvedené v eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'keepAll () operation: '+ eduNewCourses) // Odstránenie všetkých prvkov dostupných v množine eduCourses.clear () System.out.println (' Po vyvolaní metódy clear (): '+ eduCourses)}}

Po vykonaní vyššie uvedeného kódu získate výstup uvedený nižšie.

Týmto sa dostávame na koniec tohto článku. Dúfam, že sa mi podarilo udržať koncepty ostré a jasné. Môžete sa dozvedieť viac o prechádzaním našej .

ako ukončiť program v jave

Teraz, keď ste pochopili, čo je HashSet v Jave, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v Jave a naučil vás základné aj pokročilé koncepty Javy spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Prosím, uveďte to v sekcii komentárov v tomto článku „HashSet v Jave“ a my sa vám ozveme čo najskôr.