addMissing method

Queue<E> addMissing(
  1. Iterable<E> elements, {
  2. bool equalityFunction(
    1. E a,
    2. E b
    ) = h.symmetricDeepEquals,
})

Adds elements from elements that are not in original value.

1, 2, 3.addMissing(2, 3, 4, 4) returns 1, 2, 3, 4.

Doesn't remove duplicates in original value, but doesn't add duplicates from input value.

Can use nub to remove duplicates, and can concatenate normally to keep duplicates.

To check if an element is missing, default h.symmetricDeepEquals checks DeepCollectionEquality().equals in both directions since it is asymmetric, but equalityFunction allows a custom function to be used. For asymmetric equality functions, equality is checked from left to right.

Implementation

Queue<E> addMissing(
  Iterable<E> elements, {
  bool Function(E a, E b) equalityFunction = h.symmetricDeepEquals,
}) {
  return h
      .addMissingIterable(
        original: this,
        input: elements,
        equalityFunction: equalityFunction,
      )
      .toQueue();
}