Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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() Возвращает количество элементов в этом наборе (его количество элементов).
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...