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
У наступному прикладі ми бачимо, що повторювані значення не зберігаються в 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); } }
Вихід: