# DoubleLinkedQueue<E> class

A Queue implementation based on a double-linked list.

Allows constant time add, remove-at-ends and peek operations.

Inheritance
  - Object
  - Iterable<E>
  - DoubleLinkedQueue
Implements
  - Queue<E>

## Constructors

DoubleLinkedQueue()
DoubleLinkedQueue.from(Iterable elements)
  Creates a double-linked queue containing all `elements`. [...]
  factory
DoubleLinkedQueue.of(Iterable<E> elements)
  Creates a double-linked queue from `elements`. [...]
  factory

## Properties

first → E
  Returns the first element. [...]
  read-only
isEmpty → bool
  Returns `true` if there are no elements in this collection. [...]
  read-only
iterator → _DoubleLinkedQueueIterator<E>
  Returns a new `Iterator` that allows iterating the elements of this `Iterable`. [...]
  read-only
last → E
  Returns the last element. [...]
  read-only
length → int
  Returns the number of elements in this. [...]
  read-only
single → E
  Checks that this iterable has only one element, and returns that element. [...]
  read-only
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
isNotEmpty → bool
  Returns true if there is at least one element in this collection. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

add(E value) → void
  Adds `value` at the end of the queue.
addAll(Iterable<E> iterable) → void
  Adds all elements of `iterable` at the end of the queue. The length of the queue is extended by the length of `iterable`.
addFirst(E value) → void
  Adds `value` at the beginning of the queue.
addLast(E value) → void
  Adds `value` at the end of the queue.
cast<R>() → Queue<R>
  Provides a view of this iterable as an iterable of `R` instances. [...]
clear() → void
  Removes all elements in the queue. The size of the queue becomes zero.
firstEntry() → DoubleLinkedQueueEntry<E>
  The entry object of the first element in the queue. [...]
forEachEntry(void action(DoubleLinkedQueueEntry<E> element)) → void
  Calls `action` for each entry object of this double-linked queue. [...]
lastEntry() → DoubleLinkedQueueEntry<E>
  The entry object of the last element in the queue. [...]
remove(Object o) → bool
  Remove a single instance of `value` from the queue. [...]
removeFirst() → E
  Removes and returns the first element of this queue. [...]
removeLast() → E
  Removes and returns the last element of the queue. [...]
removeWhere(bool test(E element)) → void
  Removes all elements matched by `test` from the queue. [...]
retainWhere(bool test(E element)) → void
  Removes all elements not matched by `test` from the queue. [...]
toString() → String
  Returns a string representation of (some of) the elements of `this`. [...]
any(bool test(E element)) → bool
  Checks whether any element of this iterable satisfies `test`. [...]
  inherited
contains(Object element) → bool
  Returns true if the collection contains an element equal to `element`. [...]
  inherited
elementAt(int index) → E
  Returns the `index`th element. [...]
  inherited
every(bool test(E element)) → bool
  Checks whether every element of this iterable satisfies `test`. [...]
  inherited
expand<T>(Iterable<T> f(E element)) → Iterable<T>
  Expands each element of this Iterable into zero or more elements. [...]
  inherited
firstWhere(bool test(E element), { E orElse() }) → E
  Returns the first element that satisfies the given predicate `test`. [...]
  inherited
fold<T>(T initialValue, T combine(T previousValue, E element)) → T
  Reduces a collection to a single value by iteratively combining each element of the collection with an existing value [...]
  inherited
followedBy(Iterable<E> other) → Iterable<E>
  Returns the lazy concatentation of this iterable and `other`. [...]
  inherited
forEach(void f(E element)) → void
  Applies the function `f` to each element of this collection in iteration order.
  inherited
join([String separator = "" ]) → String
  Converts each element to a String and concatenates the strings. [...]
  inherited
lastWhere(bool test(E element), { E orElse() }) → E
  Returns the last element that satisfies the given predicate `test`. [...]
  inherited
map<T>(T f(E e)) → Iterable<T>
  Returns a new lazy Iterable with elements that are created by calling `f` on each element of this `Iterable` in iteration order. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
reduce(E combine(E value, E element)) → E
  Reduces a collection to a single value by iteratively combining elements of the collection using the provided function. [...]
  inherited
singleWhere(bool test(E element), { E orElse() }) → E
  Returns the single element that satisfies `test`. [...]
  inherited
skip(int count) → Iterable<E>
  Returns an Iterable that provides all but the first `count` elements. [...]
  inherited
skipWhile(bool test(E value)) → Iterable<E>
  Returns an `Iterable` that skips leading elements while `test` is satisfied. [...]
  inherited
take(int count) → Iterable<E>
  Returns a lazy iterable of the `count` first elements of this iterable. [...]
  inherited
takeWhile(bool test(E value)) → Iterable<E>
  Returns a lazy iterable of the leading elements satisfying `test`. [...]
  inherited
toList({bool growable: true }) → List<E>
  Creates a List containing the elements of this Iterable. [...]
  inherited
toSet() → Set<E>
  Creates a Set containing the same elements as this iterable. [...]
  inherited
where(bool test(E element)) → Iterable<E>
  Returns a new lazy Iterable with all elements that satisfy the predicate `test`. [...]
  inherited
whereType<T>() → Iterable<T>
  Returns a new lazy Iterable with all elements that have type `T`. [...]
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited