HashSet реализует интерфейс Set и предназначен для хранения отдельных уникальных объектов. HashMap реализует интерфейс Map и хранит пары ключ-значение для удобного доступа к данным.
HashSet можно итерировать напрямую через Iterator:
Iterator<String> iterator = hashSet.iterator();
HashMap требует предварительного преобразования в Set:
Set<String> keys = hashMap.keySet();
Iterator<String> iterator = keys.iterator();
| Аспект | HashSet | HashMap |
|---|---|---|
| Интерфейс | Set | Map |
| Назначение | Хранить уникальные значения | Хранить пары ключ-значение |
| Дубликаты | Не разрешены | Значения разрешены, ключи нет |
| Поддержка null | 1 null-значение | 1 null-ключ, несколько null-значений |
| Итерация | Напрямую через Iterator | Предварительное преобразование в Set |
Выбирай HashSet, когда нужна коллекция уникальных значений. Выбирай HashMap, когда нужно хранить значения и получать их по ключу.
HashSet может хранить несколько null значений, тогда как HashMap может хранить только одно null значение независимо от того, является ли оно ключом или значением.
Новый — ещё не проверен сообществом
Вы