The HashMapa I Zestaw skrótów w Javie to najpopularniejsze klasy Collection. Obydwa są używane w strukturze danych. Poniższa tabela opisuje różnicę między HashMap i HashSet:
Podstawa | HashMapa | Zestaw skrótów |
---|---|---|
Definicja | Java HashMap to implementacja interfejsu Map oparta na tablicy mieszającej. | HashSet jest zbiorem. Tworzy kolekcję, która wykorzystuje tabelę mieszającą do przechowywania. |
Realizacja | Implementacje HashMap Mapowanie, klonowanie i serializacja interfejs np. | Implementacje HashSet Ustawianie, klonowanie, serializacja, iterowalność I Kolekcja interfejsy. |
Sklepy | W HashMap przechowujemy para klucz-wartość . Utrzymuje mapowanie klucza i wartości. | W HashSet przechowujemy obiekty . |
Zduplikowane wartości | Nie pozwala duplikaty kluczy , Ale zduplikowane wartości Czy dozwolony . | Nie pozwala zduplikowane wartości . |
Wartości zerowe | Może zawierać A pojedynczy klucz zerowy I wiele wartości null . | Może zawierać pojedynczą wartość zerową . |
Sposób wprowadzania | HashMap używa umieścić() metoda dodawania elementów w HashMap. | HashSet używa dodać() metoda dodawania elementów w zestawie HashSet. |
Wydajność | HashMap jest szybciej/ niż HashSet, ponieważ wartości są powiązane z unikalnym kluczem. | HashSet jest wolniej niż HashMap, ponieważ obiekt członkowski służy do obliczania wartości hashcode, która może być taka sama dla dwóch obiektów. |
Liczba obiektów | Tylko jeden obiekt jest tworzony podczas operacji dodawania. | Tam są dwa obiekty utworzone podczas operacji umieszczania, jeden dla klucz i jeden dla wartość . |
Mechanizm przechowywania | HashMap używa wewnętrznie haszowanie do przechowywania przedmiotów. | HashSet wewnętrznie używa a HashMapa obiekt do przechowywania obiektów. |
Używa | Zawsze wolę, gdy nie utrzymujemy wyjątkowość . | Używa się go, gdy musimy utrzymać wyjątkowość danych. |
Przykład | {a->4, b->9, c->5} Gdzie a, b, c Czy Klucze I 4, 9, 5 Czy wartości powiązany z kluczem. | {6, 43, 2, 90, 4} Oznacza zestaw. |
Rozumiemy różnice poprzez programy.
Przykład HashMapy
W poniższym przykładzie, gdy dodamy zduplikowany element z tym samym kluczem i inną wartością, wówczas poprzednia wartość klucza zostanie zastąpiona nową wartością.
Kiedy dodamy zduplikowany element z tym samym kluczem i tą samą wartością, para klucz-wartość nie zostanie zapisana po raz drugi.
import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } }
Wyjście:
Przykład zestawu HashSet
W poniższym przykładzie widzimy, że zduplikowane wartości nie są przechowywane w HashSet, a wartość null jest zapisywana tylko raz.
import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } }
Wyjście: