# Class LinkedHashSet<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
java.util.HashSet<E>
java.util.LinkedHashSet<E>

All Implemented Interfaces:
  `Iterable<E>, Collection<E>, Set<E>`

public class LinkedHashSet<E> extends HashSet<E> implements Set<E>

LinkedHashSet is a variant of HashSet. Its entries are kept in a doubly-linked list. The iteration order is the order in which entries were inserted.

Null elements are allowed, and all the optional Set operations are supported.

Like HashSet, LinkedHashSet is not thread safe, so access by multiple threads must be synchronized by an external mechanism such as `Collections#synchronizedSet(Set)`.

##### Since

1.4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LinkedHashSet()`
  Constructs a new empty instance of `LinkedHashSet`.
  `LinkedHashSet(int capacity)`
  Constructs a new instance of `LinkedHashSet` with the specified capacity.
  `LinkedHashSet(int capacity, float loadFactor)`
  Constructs a new instance of `LinkedHashSet` with the specified capacity and load factor.
  `LinkedHashSet(Collection<? extends E> collection)`
  Constructs a new instance of `LinkedHashSet` containing the unique elements in the specified collection.

- ## Method Summary

  ### Methods inherited from class HashSet

  `add, clear, contains, isEmpty, iterator, remove, size`

  ### Methods inherited from class AbstractSet

  `equals, hashCode, removeAll`

  ### Methods inherited from class AbstractCollection

  `addAll, containsAll, retainAll, toArray, toArray, toString`

  ### Methods inherited from class Object

  `clone, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface Collection

  `removeIf`

  ### Methods inherited from interface Iterable

  `forEach`

  ### Methods inherited from interface Set

  `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray`

- ## Constructor Details

  - ### LinkedHashSet

    public LinkedHashSet()
    Constructs a new empty instance of `LinkedHashSet`.

  - ### LinkedHashSet

    public LinkedHashSet(int capacity)

    Constructs a new instance of `LinkedHashSet` with the specified capacity.

    ###### Parameters

    - `capacity`: the initial capacity of this `LinkedHashSet`.

  - ### LinkedHashSet

    public LinkedHashSet(int capacity, float loadFactor)

    Constructs a new instance of `LinkedHashSet` with the specified capacity and load factor.

    ###### Parameters

    - `capacity`: the initial capacity.

    - `loadFactor`: the initial load factor.

  - ### LinkedHashSet

    public LinkedHashSet(Collection<? extends E> collection)

    Constructs a new instance of `LinkedHashSet` containing the unique elements in the specified collection.

    ###### Parameters

    - `collection`: the collection of elements to add.