logo

Różnica między klasą HashSet i HashMap w Javie

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:

Różnica między klasą HashSet i HashMap w Javie

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:

Różnica między klasą HashSet i HashMap w Javie