Разница между HashMap и HashSet

Опубликовано: 27 Декабря, 2021

HashSet - это реализация Set Interface, которая не допускает дублирования значений. Главное, объекты, которые хранятся в HashSet, должны переопределять equals () для проверки на равенство и методы hashCode (), чтобы в нашем наборе не сохранялись повторяющиеся значения.

HashMap - это реализация интерфейса карты, который сопоставляет ключ со значением. Дублирующие ключи не допускаются на карте. Обычно интерфейс карты имеет два класса реализации - HashMap и TreeMap, основное различие заключается в том, что TreeMap поддерживает порядок объектов, а HashMap - нет. HashMap допускает нулевые значения и нулевые ключи.

И HashSet, и HashMap не синхронизируются.

Разница между HashMap и HashSet

1) Реализация: HashMap реализует интерфейс Map, а HashSet реализует интерфейс Set.

2) Дубликаты: HashSet не допускает повторяющихся значений. HashMap хранит ключ, пары значений и не допускает дублирования ключей. Если ключ повторяется, то старый ключ заменяется новым значением.

3) Количество объектов во время хранения объектов: HashMap требует добавления двух объектов (ключ K, значение V) для добавления элемента к объекту HashMap, в то время как HashSet требует добавления только одного объекта (Object o).

4) Фиктивное значение: в HashMap нет концепции фиктивного значения,
HashSet внутренне использует HashMap для добавления элементов. В HashSet аргумент, переданный в методе add (Object), служит ключом K. Java внутренне связывает фиктивное значение для каждого значения, переданного в методе add (Object).

5) Механизм хранения или добавления: HashMap внутренне использует хеширование для хранения или добавления объектов, HashSet внутренне использует объект HashMap для хранения или добавления объектов.

6) Быстрее: HashSet медленнее, чем HashMap,

7) Вставка HashMap использует метод put () для хранения данных, в то время как в HashSet используется метод add () для добавления или хранения данных.

8) Пример: HashSet - это набор, например {1, 2, 3, 4, 5, 6, 7},

HashMap - это карта пары ключ -> значение (ключ к значению), например {a -> 1, b -> 2, c -> 2, d -> 1}

Обратите внимание на мой пример выше, что в HashMap не должно быть повторяющихся ключей, но они могут иметь повторяющиеся значения.

В HashSet не должно быть повторяющихся элементов

Пример HashSet и HashMap в Java

HashSet

// Java program to demonstrate working of HashSet
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args)
{
HashSet<String> hs = new HashSet<String>();
// Adding elements to the HashSet
hs.add( "geeks" );
hs.add( "practice" );
hs.add( "contribute" );
;
System.out.println( "Before adding duplicate values " + hs);
// Addition of duplicate elements
hs.add( "geeks" );
hs.add( "practice" );
System.out.println( " After adding duplicate values " + hs);
// Addition of null values
hs.add( null );
hs.add( null );
// Displaying HashSet elements
System.out.println( " After adding null values " + hs);
}
}
Выход:
Перед добавлением повторяющихся значений 

[практика, гики, внесите свой вклад]

После добавления повторяющихся значений 

[практика, гики, внесите свой вклад]

После добавления нулевых значений 

[null, практика, компьютерщики, внесите свой вклад]

HashMap

import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args)
{
/* This is how to declare HashMap */
HashMap<Integer, String> hm = new HashMap<Integer, String>();
/*Adding elements to HashMap*/
hm.put( 12 , "geeks" );
hm.put( 2 , "practice" );
hm.put( 7 , "contribute" );
System.out.println( " HashMap object output : " + hm);
// store data with duplicate key
hm.put( 12 , "geeks" );
System.out.println( " After inserting duplicate key : " + hm);
}
}
Выход:
Вывод объекта HashMap:

{2 = практика, 7 = участие, 12 = гики}

После вставки дубликата ключа:

{2 = практика, 7 = участие, 12 = вундеркинды}

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .