Разница между 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
