Класс 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]