Класс LinkedHashSet


Класс LinkedHashSet в Java расширяет класс HashSet, но не добавляет никаких собственных членов.

LinkedHashSet поддерживает связанный список записей в наборе, в том порядке, в котором они были вставлены. Это позволяет выполнять итерацию порядка вставки по набору.

То есть, при проходе по LinkedHashSet циклами с использованием итератора элементы будут возвращены в том порядке, в котором они были вставлены.

Хэш-код затем используется как индекс, в котором хранятся данные, связанные с ключом. Преобразование ключа в его хэш-код выполняется автоматически.

Конструкторы
Ниже приведен список конструкторов, предоставляемых классом LinkedHashSet.

№ Конструктор и описание
1 HashSet( )
Этот конструктор создает стандартный HashSet.
2 HashSet(Collection c)
Этот конструктор инициализирует хэш-набор, используя элементы коллекции c.
3 LinkedHashSet(int capacity)
Этот конструктор инициализирует емкость LinkedHashSet для заданной целочисленной емкости. Емкость растет автоматически по мере добавления элементов в HashSet.
4 LinkedHashSet(int capacity, float fillRatio)
Этот конструктор инициализирует как емкость, так и коэффициент заполнения (также называемый нагрузочной способностью) хэш-набора из его аргументов.


Методы
Помимо методов, унаследованных от его родительских классов, HashSet определяет следующие методы:

№ и описание
1 boolean add(Object o)
Добавляет указанный элемент к этому набору, если он еще не присутствует.
2 void clear()
Удаляет все элементы из этого набора.
3 Object clone()
Возвращает мелкую копию этого экземпляра HashSet: сами элементы не клонируются.
4 boolean contains(Object o)
Возвращает true, если этот набор содержит указанный элемент.
5 boolean isEmpty()
Возвращает true, если этот набор не содержит элементов.
6 Iterator iterator()
Возвращает итератор по элементам этого набора.
7 boolean remove(Object o)
Удаляет указанный элемент из этого набора, если он присутствует.
8 int size()
Возвращает количество элементов в этом наборе (его количество элементов).


Пример
Следующая программа демонстрирует работу нескольких методов, поддерживаемых LinkedHashSet в Java:

import java.util.*;
public class HashSetDemo {

public static void main(String args[]) {
// Создаём хэш-набор
LinkedHashSet hs = new LinkedHashSet();

// Добавляем элементы к хэш-набору
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
System.out.println(hs);
}
}
Получим следующий результат:

[B, A, D, E, C, F]