logo

Різниця між класом HashSet і HashMap в Java

The HashMap і HashSet в Java є найпопулярнішими класами Collection. Обидва використовуються для структури даних. У наведеній нижче таблиці описано різницю між HashMap і HashSet:

Основа HashMap HashSet
Визначення Java HashMap — це реалізація інтерфейсу Map на основі хеш-таблиці. HashSet — це набір. Він створює колекцію, яка використовує хеш-таблицю для зберігання.
Реалізація HashMap реалізує Карта, можливість клонування та серіалізація інтерфейс es. HashSet реалізує Набір, клонування, серіалізація, ітерація і Колекція інтерфейси.
Магазини У HashMap ми зберігаємо a пара ключ-значення . Він підтримує відображення ключа та значення. У HashSet ми зберігаємо об'єктів .
Дубльовані значення Це не дозволяє дублікати ключів , але повторювані значення є дозволено . Це не дозволяє повторювані значення .
Нульові значення Він може містити a єдиний нульовий ключ і кілька нульових значень . Він може містити одне нульове значення .
Спосіб вставки HashMap використовує поставити() метод для додавання елементів у HashMap. HashSet використовує додати() метод для додавання елементів у HashSet.
Продуктивність HashMap є швидше/ ніж HashSet, оскільки значення пов’язані з унікальним ключем. HashSet є повільніше ніж HashMap, оскільки об’єкт-член використовується для обчислення значення хеш-коду, яке може бути однаковим для двох об’єктів.
Кількість об'єктів Тільки один об'єкт створюється під час операції додавання. Є два об'єктів, створених під час введення в експлуатацію, один за ключ і один для значення .
Механізм зберігання Внутрішнє використання HashMap хешування зберігати предмети. HashSet внутрішньо використовує a HashMap об'єкт для зберігання об'єктів.
Використання Завжди віддавайте перевагу, коли ми не підтримуємо унікальність . Він використовується, коли нам потрібно підтримувати унікальність даних.
приклад {a->4, b->9, c->5} Де а, б, в є ключі і 4, 9, 5 є значення пов'язаний з ключем. {6, 43, 2, 90, 4} Він позначає набір.

Давайте розбиратися в відмінностях за допомогою програм.

Приклад HashMap

У наступному прикладі, коли ми додаємо повторюваний елемент із тим самим ключем і іншим значенням, попереднє значення ключа замінюється новим значенням.

Коли ми додаємо повторюваний елемент із тим самим ключем і значенням, тоді пара ключ-значення не зберігається вдруге.

 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); } } 

Вихід:

Різниця між класом HashSet і HashMap у Java

Приклад HashSet

У наступному прикладі ми бачимо, що повторювані значення не зберігаються в HashSet, а нульове значення зберігається лише один раз.

 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); } } 

Вихід:

Різниця між класом HashSet і HashMap в Java