HashSet v Javě je jedním z nejdůležitějších aspektů . Obvykle se používá k ukládání jedinečných hodnot neuspořádaným způsobem. Prostřednictvím tohoto článku o HashSet v Javě vám poskytnu kompletní návod, co přesně je HashSet a jak jej můžete použít ve své aplikaci.
Níže jsou uvedena témata v tomto článku:
- HashSet v Javě
- Java HashSet vs HashMap
- HashSet hierarchie
- Konstruktory třídy java.util.HashSet
- Metody třídy java.util.HashSet
- Implementace HashSet v programu Java
Začněme tím, že nejprve pochopíme, co je HashSet v Javě.
HashSet v Javě
java.util.HashSet třída je členem rámce sbírek Java, kterýdědí třídu AbstractSet arealizujeSoubor rozhraní . Implicitně implementuje hashtable pro vytváření a ukládání kolekce jedinečných prvků. Hashtable není nic jiného než instance třídy HashMap, která používá hashovací mechanismus pro ukládání informací v HashSet.
Hashing je proces převodu informačního obsahu na jedinečnou hodnotu, která je více známá jako hash kód. Tento hashcode se poté použije k indexování dat spojených s klíčem. Celý proces transformace informačního klíče na hashcode se provádí interně.
Nyní, abych lépe porozuměl HashSet v Javě, dovolte mi uvést několik jeho funkcí:
- HashSet v Javě neumožňuje duplicitní hodnoty.
- Může obsahovat nulové hodnoty.
- HashSet nedodržuje pořadí vložení pro ukládání dat, spíše využívá hashcode pro indexování hodnot uvnitř.
- To není synchronizované což jej automaticky činí nebezpečným pro vlákna.
- Třída HashSet také implementuje Cloneable aSerializovatelná rozhraní.
Nyní, když víte, co přesně je HashSet v Javě, pojďme s tímto článkem dále a demystifikujte rozdíly mezi HashMap a HashSet v Javě.
Java HashSet vs HashMap
HashSet | HashMap |
Nářadíjava.util.Nastavit rozhraní | Nářadíjava.util.Map |
Ukládá data jako objekty | Ukládá data ve formě páru klíč – hodnota |
HashSet vyžaduje pro inicializaci objektu pouze jeden parametr | Pro inicializaci objektu vyžaduje dva parametry (klíč, hodnota) |
Nepovoluje duplicitní prvky | Nepovoluje duplicitní klíče, ale můžete uložit duplicitní hodnoty |
Umožňuje jednu nulovou hodnotu | Umožňuje jeden nulový klíč a libovolný počet hodnot null |
HashSet použití add ()metoda pro přidání nebo uložení dat | HashMap používá metodu put () pro ukládání dat |
Nyní, když máte jasný rozdíl mezi HashMap a HashSet, zaměřme se nyní znovu na HashSet a ponořme se hlouběji do toho. V další části tohoto článku vám představím úplnou hierarchii HashSet v Javě.
HashSet Hierarchie v Javě
Jak můžete vidět z níže uvedeného diagramu,Třída HashSet implementuje rozhraní Set. Rozhraní Set dále dědí rozhraní Collection, které nakonec rozšiřuje Iterable interface v hierarchickém pořadí.
projít odkazem v Javě
Nyní, v tomto článku o HashSet v Javě, pojďme se podívat na různé konstruktéři podporováno touto třídou.
Konstruktory třídy java.util.HashSet
Stavitel | Popis |
HashSet () | Toto je výchozí konstruktor třídy HashSet |
HashSet (int kapacita) | Tento konstruktor se používá k inicializaci počáteční kapacity sady hash. Kapacita může dynamicky růst s přidáním nových prvků |
HashSet (int kapacita, float loadCapacity) | Tento konstruktor se používá k inicializaci počáteční kapacity sady hash spolu s nosností |
HashSet (kolekce c) | Tento konstruktor se používá k inicializacihash nastavený pomocí prvků z kolekce c |
Byli to čtyři konstruktéři třídy HashSet v . Pojďme nyní zjistit, jaké jsou různé definované v Java HashSet.
Metody třídy java.util.HashSet
Metoda | Popis |
boolean add (Object obj) | Tato metoda pomáhá při přidávání zadaného prvku do HashSet, pouze pokud není k dispozici |
prázdnota clear () | Tato metoda pomáhá při odstraňování všech prvků z HashSet |
Klon objektu () | Tato metoda vrací mělkou kopii instance HashSet, nikoli klony prvků HashSet |
boolean obsahuje (Objekt o) | Tato metoda vrací true, pokud je předaný prvek přítomen v HashSet |
boolean isEmpty () | Tato metoda vrací true v případě, že je HashSet prázdný |
Iterátor iterátor () | Tato metoda vrací iterátor nad prvky přítomnými v HashSet |
boolean remove (Objekt o) | Tato metoda pomáhá při odebrání zadaného prvku z HashSet, pokud je přítomen |
int velikost () | Tato metoda vrací celkový počet prvků přítomných v HashSet |
Spolu s výše uvedenými metodami obsahuje třída HashSet v Javě také ze svých nadtříd.
Zkusme nyní tyto metody implementovat a namočit nohy kódováním.
Implementace HashSet v programu Java
V níže uvedeném příkladu se pokusíme implementovat řadu metod poskytovaných třídou HashSet.
import java.util.HashSet import java.util. * veřejná třída SampleHashSet {public static void main (String [] args) {// Vytvoření sady HashSet eduCourses = new HashSet () // Přidání nových prvků do 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') // Přidání duplicitních prvků bude ignorováno eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Zkontrolujte, zda HashSet obsahuje konkrétní prvek String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' je v seznamu kurzů. ')} else {System.out.println (myCourse +' není v seznamu kurzů. ')} // Řazení eduCourses pomocí List List list = new ArrayList (eduCourses) Collections.sort (seznam) // Tisk seřazených prvků HashSet System.out.println (' Tisk kurzů v seřazeném pořadí pomocí Seznamu: '+ seznam) // Odebrání položek z HashSetu pomocí remove () eduCourses.remove (' Python ') // Iterace nad položkami HashSet System.out.println (' Iterace v seznamu kurzů po odebrání Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Vytvoření dalšího objektu HashSet HashSet eduNewCourses = nový HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Odstranění všech nových prvků z HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Po vyvolání removeAll () Zbývající kurzy metody: '+ eduCourses) // Odstranění prvků na základě zadané podmínky eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Po vyvolání metody removeIf (): '+ eduCourses) // Odebrání prvků z eduCourses, které jsou specifikovány v eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'keepAll () operation: '+ eduNewCourses) // Odebrání všech prvků dostupných v sadě eduCourses.clear () System.out.println (' Po vyvolání metody clear (): '+ eduCourses)}}
Když provedete výše uvedený kód, poskytne vám níže zobrazený výstup.
Tímto se dostáváme na konec tohoto článku. Doufám, že jsem dokázal udržet pojmy ostré a jasné. Můžete se dozvědět více o procházením naší .
hluboká kopie vs mělká kopie Java
Nyní, když jste pochopili, co je HashSet v Javě, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.
Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto článku „HashSet v Javě“ a my se vám ozveme co nejdříve.