removeIf method

void removeIf(
  1. bool test(
    1. T
    )
)

Removes all elements for which test returns true.

Implementation

void removeIf(bool Function(T) test) {
  _ForwardListNode<T>? current = _head;
  _ForwardListNode<T>? prev;
  while (current != null) {
    if (test(current.value)) {
      if (prev == null) {
        _head = current.next;
      } else {
        prev.next = current.next;
      }
      _length--;
    } else {
      prev = current;
    }
    current = current.next;
  }
}