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

Источник: http://net-informations.com/Java/cJava/map.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector