30.12. Java – Класс HashSet. Конструкторы. Методы. Пример. 30.13. Java – Класс LinkedHashSet. Ниже приведен список конструкторов, предоставляемых классом HashSet
30. 12. Java – Класс HashSet
Класс HashSet в Java расширяет AbstractSet и реализует интерфейс Set. Он создает коллекцию, которая использует хеш-таблицу для хранения.
Хэш-таблица хранит информацию с помощью механизма, называемого хешированием. В хэшировании информационный контент ключа используется для определения уникального значения, называемого его хэш-кодом.
Хэш-код затем используется как индекс, в котором хранятся данные, связанные с ключом. Преобразование ключа в его хэш-код выполняется автоматически.
Конструкторы
Ниже приведен список конструкторов, предоставляемых классом HashSet.
№
| Конструктор и описание
|
| HashSet( ) Этот конструктор создает стандартный HashSet.
|
| HashSet(Collection c) Этот конструктор инициализирует хэш-набор, используя элементы коллекции c.
|
| HashSet(int capacity) Этот конструктор инициализирует емкость хэш-набора для заданной целочисленной емкости. Емкость растет автоматически по мере добавления элементов в HashSet.
|
| HashSet(int capacity, float fillRatio) Этот конструктор инициализирует как емкость, так и коэффициент заполнения (также называемый нагрузочной способностью) хэш-набора из его аргументов. При этом отношение заполнения должно находиться в диапазоне от 0, 0 до 1, 0, и это определяет, как полный набор хэша, прежде чем его размер будет увеличен. В частности, когда количество элементов больше, чем емкость хеш-множества, умноженная на его коэффициент заполнения, хэш-набор расширяется.
|
Методы
Помимо методов, унаследованных от его родительских классов, HashSet определяет следующие методы:
№
| и описание
|
| boolean add(Object o) Добавляет указанный элемент к этому набору, если он еще не присутствует.
|
| void clear() Удаляет все элементы из этого набора.
|
| Object clone() Возвращает мелкую копию этого экземпляра HashSet: сами элементы не клонируются.
|
| boolean contains(Object o) Возвращает true, если этот набор содержит указанный элемент.
|
| boolean isEmpty() Возвращает true, если этот набор не содержит элементов.
|
| Iterator iterator() Возвращает итератор по элементам этого набора.
|
| boolean remove(Object o) Удаляет указанный элемент из этого набора, если он присутствует.
|
| int size() Возвращает количество элементов в этом наборе (его количество элементов).
|
Пример
Следующая программа демонстрирует работу нескольких методов, поддерживаемых HashSet в Java:
import java. util. *; public class HashSetDemo { public static void main(String args[]) { // Создаём HashSet HashSet hs = new HashSet(); // Добавляем элементы к HashSet hs. add(" B" ); hs. add(" A" ); hs. add(" D" ); hs. add(" E" ); hs. add(" C" ); hs. add(" F" ); System. out. println(hs); }}
Получим следующий результат:
[A, B, C, D, E, F]
30. 13. Java – Класс LinkedHashSet
Класс LinkedHashSet в Java расширяет класс HashSet, но не добавляет никаких собственных членов.
LinkedHashSet поддерживает связанный список записей в наборе, в том порядке, в котором они были вставлены. Это позволяет выполнять итерацию порядка вставки по набору.
То есть, при проходе по LinkedHashSet циклами с использованием итератора элементы будут возвращены в том порядке, в котором они были вставлены.
Хэш-код затем используется как индекс, в котором хранятся данные, связанные с ключом. Преобразование ключа в его хэш-код выполняется автоматически.
Конструкторы
Ниже приведен список конструкторов, предоставляемых классом LinkedHashSet.
№
| Конструктор и описание
|
| HashSet( ) Этот конструктор создает стандартный HashSet.
|
| HashSet(Collection c) Этот конструктор инициализирует хэш-набор, используя элементы коллекции c.
|
| LinkedHashSet(int capacity) Этот конструктор инициализирует емкость LinkedHashSet для заданной целочисленной емкости. Емкость растет автоматически по мере добавления элементов в HashSet.
|
| LinkedHashSet(int capacity, float fillRatio) Этот конструктор инициализирует как емкость, так и коэффициент заполнения (также называемый нагрузочной способностью) хэш-набора из его аргументов.
|
Методы
Помимо методов, унаследованных от его родительских классов, HashSet определяет следующие методы:
№
| и описание
|
| boolean add(Object o) Добавляет указанный элемент к этому набору, если он еще не присутствует.
|
| void clear() Удаляет все элементы из этого набора.
|
| Object clone() Возвращает мелкую копию этого экземпляра HashSet: сами элементы не клонируются.
|
| boolean contains(Object o) Возвращает true, если этот набор содержит указанный элемент.
|
| boolean isEmpty() Возвращает true, если этот набор не содержит элементов.
|
| Iterator iterator() Возвращает итератор по элементам этого набора.
|
| boolean remove(Object o) Удаляет указанный элемент из этого набора, если он присутствует.
|
| int size() Возвращает количество элементов в этом наборе (его количество элементов).
|
Воспользуйтесь поиском по сайту: