Zjistěte, co je HashSet v Javě a jak s ním začít!



Tento článek o HashSet v Javě vám poskytne kompletní přehled o tom, co přesně je HashSet v Javě a jak ji implementovat. Bude také hovořit o různých metodách a konstruktorech podporovaných třídou Java HashSet.

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:





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í:



  1. HashSet v Javě neumožňuje duplicitní hodnoty.
  2. Může obsahovat nulové hodnoty.
  3. HashSet nedodržuje pořadí vložení pro ukládání dat, spíše využívá hashcode pro indexování hodnot uvnitř.
  4. To není synchronizované což jej automaticky činí nebezpečným pro vlákna.
  5. 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 objektyUkládá data ve formě páru klíč – hodnota
HashSet vyžaduje pro inicializaci objektu pouze jeden parametrPro inicializaci objektu vyžaduje dva parametry (klíč, hodnota)
Nepovoluje duplicitní prvkyNepovoluje duplicitní klíče, ale můžete uložit duplicitní hodnoty
Umožňuje jednu nulovou hodnotuUmožňuje jeden nulový klíč a libovolný počet hodnot null
HashSet použití add ()metoda pro přidání nebo uložení datHashMap 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ě

Hierarchie Java HashSet - HashSet v Javě - Edureka

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.