Разница между HashMap и HashSet
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 и многому другому, см. Полный курс подготовки к собеседованию .