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:
- HashSet v Jave
- Java HashSet vs HashMap
- HashSet Hierarchia
- Konštruktéri triedy java.util.HashSet
- Metódy triedy java.util.HashSet
- Implementácia HashSet v programe Java
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í:
- HashSet v Jave neumožňuje duplicitné hodnoty.
- Môže obsahovať nulové hodnoty.
- HashSet nedodržiava poradie vloženia na ukladanie údajov, ale na indexovanie hodnôt v ňom používa hashcode.
- To nie je synchronizované vďaka čomu je automaticky nebezpečný pre vlákna.
- 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ť rozhranie | Plneniejava.util.Map |
Ukladá údaje ako objekty | Ukladá údaje vo forme páru kľúč - hodnota |
HashSet vyžaduje na inicializáciu objektu iba jeden parameter | Pre svoju inicializáciu objektu vyžaduje dva parametre (kľúč, hodnota) |
Nepovoluje duplicitné prvky | Nepovoluje duplicitné kľúče, môžete však uložiť duplicitné hodnoty |
Umožňuje jednu nulovú hodnotu | Umožňuje jeden nulový kľúč a ľubovoľný počet nulových hodnôt |
HashSet použitie add ()spôsob pridávania alebo ukladania údajov | HashMap 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
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.