ListQueue< E>.from constructor
Create a ListQueue containing all elements.
The elements are added to the queue, as by addLast, in the order given by
elements.iterator.
All the elements should be instances of E.
The elements iterable itself may have any element type, so this
constructor can be used to down-cast a Queue, for example as:
Queue<SuperType> superQueue = ...;
Queue<SubType> subQueue =
new ListQueue<SubType>.from(superQueue.whereType<SubType>());
Implementation
factory ListQueue.from(Iterable elements) {
if (elements is List) {
int length = elements.length;
ListQueue<E> queue = new ListQueue<E>(length + 1);
assert(queue._table.length > length);
for (int i = 0; i < length; i++) {
queue._table[i] = elements[i];
}
queue._tail = length;
return queue;
} else {
int capacity = _INITIAL_CAPACITY;
if (elements is EfficientLengthIterable) {
capacity = elements.length;
}
ListQueue<E> result = new ListQueue<E>(capacity);
for (final element in elements) {
result.addLast(element);
}
return result;
}
}