HashMap a HashSet jsou dvě různé funkce v Hashtable. Hash tabulka není nic jiného než datová struktura, kde můžete mapovat klíčové hodnoty.
Hashovací funkce je primární věcí v Hashtable. Primární výhodou hash tabulky je rychlost ve srovnání s jinými datovými strukturami.
Key Takeaways
- HashMap je datová struktura, která ukládá páry klíč-hodnota, zatímco HashSet ukládá jedinečné prvky bez přidružených hodnot.
- HashMap implementuje rozhraní Map a HashSet implementuje rozhraní Set v Javě.
- HashSet je podporován HashMap, která používá fiktivní hodnoty pro klíče k udržení kolekce jedinečných prvků.
HashMap vs HashSet
HashMap je datová struktura založená na klíči a hodnotě, která nám umožňuje ukládat a načítat objekty pomocí a jedinečný klíč. HashSet je datová struktura založená na množině, která se používá k ukládání kolekce jedinečných objektů a používá hash k ukládání objektů a poskytuje výkon v konstantním čase.
HashMap je asociativní k datovému typu pole. Je součástí kolekce Java. Tuto třídu lze nalézt v Java až do balíčku.
To lze implementovat v mapovém rozhraní Java, kde ukládá data do (KEY, VALUE), které slouží k uložení hodnoty a přístupu k ní pomocí klíče.
Když předáme objekt, lze k němu přistupovat s hodnotou klíče, kterou je index. Můžeme zajistit, že duplicitní klíč, ale který implikuje předchozí prvek odpovídající klíči.
Nulové klíče se také ukládají HashMap. HashMap umožňuje pouze jeden klíč null.
HashSet obsahuje unikátní sbírky. Tuto třídu lze nalézt v Java až do balíčku.
Využívá svůj mechanismus zvaný hašování k ukládání svých informací do hašovací tabulky, k prvku v tabulce se přistupuje pomocí jedinečné hodnoty zvané hašovací kód, což je třída implementovaná pomocí nastaveného rozhraní, které je základem datové struktury hašovací tabulky.
Nepovoluje duplicitní hodnoty, ale můžeme mít fiktivní hodnoty. Hlavní výhodou je, že se může jednat o serializovatelné a klonovatelné rozhraní.
Srovnávací tabulka
Parametry srovnání | HashMap | HashSet |
---|---|---|
Falešné hodnoty | HashMap nemá žádné fiktivní hodnoty | HashSet má fiktivní hodnoty |
Mechanismus přidávání | HashMap využívá hašovací techniku | HashSet používá objekt hash |
Rychlost | HashMap je rychlejší | HashSet je pomalejší |
Způsob vkládání | Metoda vložení v HashMap je Put() | Metoda vložení v HashSet je Add() |
Příklad | (a-10, b-20, c-70) | (10,20,70) |
Co je HashMap?
Hashmap lze implementovat pomocí metody (Hash Map hm = nová HashMap ();). Zadanou počáteční kapacitu a faktor zatížení lze vytvořit například v HashMap.
HashMap může zraňovat hodnoty různými způsoby. Ukládá řetězec jako klíč. V HashMap jsou klíčové hodnoty považovány za objekty. Primárním úkolem je oragovat tabulku pomocí hodnot nebo objektů kay. Čas potřebný pro organizaci je O(1) čas.
Protože je to flexibilní klíče jako síla hash mapy. Jsou podobné poli, ale mají „indexy“, které se používají pro přístup k datům, ale v hash mapě používáme klíče pro přístup k hodnotám.
Existuje několik základních operací HashMap, jako je přidání prvku, přístup k prvku, změna prvku, odebrání prvku.
Pro přidání prvku použijeme metodu put(), Pro přístup k prvku použijeme metodu get(), Pro změnu prvku použijeme metodu replace(), Pro odebrání prvku použijeme metodu remove().
Podobně existuje mnoho příkazů a metod, jako je clear, compute, merge, clone, size, atd., které jsou užitečné pro programátora k efektivnímu používání HashMap.
Co je HashSet?
HashSet lze implementovat pomocí syntaxe (Hash Set< E> hs = new Hash Set< E>();), která definuje kapacitu sady hash i bez jejího definování výchozí hodnota bude 16 a faktor zatížení bude 0.75.
HashSet(int capacity, float fill Ratio) se používá ke změně velikosti kapacity hashsetu, když jsou prvky větší, musí mít kapacitu pro uložení hodnoty do množiny, množina se tak rozšíří.
Máme stejné základní operace, jako je přidat, odebrat, obsahuje a velikost, ale pro základní operace má konstantní časový výkon.
Tam, kde v množině máme další různé operace jako sjednocovací množinu, rozdíly množiny, má podmnožina výhodu pro metodu hashset.
Při sjednocení množiny můžeme provést operaci sjednocení mezi dvěma množinami pomocí metody add-all(). V rozdílu množin můžeme vypočítat rozdíl mezi dvěma množinami pomocí metody remove-all().
V Podmnožině můžeme přidat další podmnožinu jiné sady pomocí metody obsahuje-all(). Když přidáváme hodnoty nebo vkládáme hodnotu do HashSet, nemůže být v pořádku, je vkládána na základě kódu.
Iterace prvků se vrací v žádném konkrétním pořadí. Můžeme také použít Index, ve kterém jsou uložena data spojená s klíčem.
Většinou můžeme použít hashset pro přístup k náhodnému prvku z jejich množiny. Protože je přístupný přes hash kód, kde je jedinečný, takže můžeme prvek snadno identifikovat.
Protože není nesynchronizován, lze přistupovat k více hrozbám současně a lze je upravit. Toho se dosáhne synchronizací jednoho objektu v sadě.
Hodnoty v aktivu nebo vlastně v objektu můžeme vytvořit objekt typu string a lze je zabalit do námi specifikované třídy. Kde ukládá celé číslo jako objekt pro omezení časové složitosti.
Hlavní rozdíly mezi HashMap a HashSet
- Požadavek na objekt během přidávání v HashMap je dva, zatímco v HashSet je požadavek na objekt během přidávání pouze jeden.
- HashMap má libovolný počet hodnot null, ale HashSet má pouze jednu hodnotu null.
- Pár klíč-hodnota je uložen v HashMap, zatímco objekty jsou uloženy v HashSet.
- Ve srovnání s Hashmap se HashSet používá pro jedinečnost dat.
- Příkladem pro HashMap je {a->4, b->9, c->5} a příklad pro HashSet je {6, 43, 2, 90, 4}.
- https://dl.acm.org/doi/abs/10.1145/2884781.2884869?casa_token=1z9VmoTZC90AAAAA:8-pUqjpp5C0S4rIzg2sMUI4FeuvVH5QIN99WkbSrP1HSwCa13CtZa7lXBKMzm864NI__H8iKBcjMZck
- https://ieeexplore.ieee.org/abstract/document/5370764/
Poslední aktualizace: 13. července 2023
Sandeep Bhandari získal bakalářský titul v oboru počítačů na Thapar University (2006). Má 20 let zkušeností v oblasti technologií. Má velký zájem o různé technické obory, včetně databázových systémů, počítačových sítí a programování. Více si o něm můžete přečíst na jeho bio stránka.