remove method Null safety
- Object? o
override
Remove a single instance of value
from the queue.
Returns true
if a value was removed, or false
if the queue
contained no element equal to value
.
Implementation
bool remove(Object? o) {
_DoubleLinkedQueueEntry<E> entry =
_sentinel._nextLink as _DoubleLinkedQueueEntry<E>;
while (!identical(entry, _sentinel)) {
bool equals = (entry._element == o);
if (!identical(this, entry._queue)) {
// Entry must still be in the queue.
throw ConcurrentModificationError(this);
}
if (equals) {
entry._remove();
_elementCount--;
return true;
}
entry = entry._nextLink as _DoubleLinkedQueueEntry<E>;
}
return false;
}