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>());
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; } }
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/2.0.0/dart-collection/ListQueue/ListQueue.from.html