Разница между HashSet и HashMap в Java
Содержание
Как следует из названий, HashMap является ассоциативной Map, а HashSet - это просто Set. Но они совершенно разные конструкции. HashMap - это реализация интерфейса Map. Интерфейс карты сопоставляет ключи значениям. Ключевой поиск происходит с использованием хэша. С другой стороны, HashSet представляет собой реализацию интерфейса Set. Набор выполнен в соответствии с математической моделью набора. Как вы заметили, HashSet использует HashMap для поддержки его реализации. Однако он реализует совершенно другой интерфейс.
HashMap используется для хранения пар ключ-значение с использованием метода put Пример: hm.put (ключ, значение); а HashSet используется для хранения только уникальных объектов с помощью метода add. Пример: hs.add (object) ;.
HashMap не позволяет дублировать ключи, но значения можно дублировать, а HashSet не разрешает дублирование объектов
HashMap допускает максимум одного пустого ключа, но допустимо любое количество значений NULL, в то время как HashSet позволяет добавить максимум один нулевой объект
HashSet внутренне использует HashMap. Таким образом, не должно быть никаких различий в производительности, если вы используете их для этой же цели.
Внедрение HashSet
import Java.util.*; class TestClass { public static void main (String[] args) { // создать объект HashSet HashSet days=new HashSet(); // добавление элементов в HashSet days.add("Sunday"); days.add("Monday"); days.add("Tuesday"); days.add("Wednesday"); days.add("Thursday"); days.add("Friday"); days.add("Saturday"); // Итерация через HashSet Iterator itr=days.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Выход
Monday Thursday Friday Sunday Wednesday Tuesday Saturday
Внедрение HashMap
import Java.util.*; class TestClass { public static void main (String[] args) { // Создание HashMap HashMap < Integer,String > days = new HashMap < Integer,String >(); // Добавление пар ключ / значение days.put(1,"Sunday"); days.put(2,"Monday"); days.put(3,"Tuesday"); days.put(4,"Wednesday"); Set < Map.Entry < Integer,String > > set = days.entrySet(); for (Map.Entry < Integer,String > sg : set) { System.out.println("Key :"+sg.getKey() + " Value :"+days.get(sg.getKey())); } } }
Как создать документ Excel Programmatically
Выход
Key :1 Value :Sunday Key :2 Value :Monday Key :3 Value :Tuesday Key :4 Value :Wednesday