setEquals<T> function

bool setEquals <T>(Set<T> a, Set<T> b)

Compares two sets for deep equality.

Returns true if the sets are both null, or if they are both non-null, have the same length, and contain the same members. Returns false otherwise. Order is not compared.

See also:

  • listEquals, which does something similar for lists.

Implementation

bool setEquals<T>(Set<T> a, Set<T> b) {
  if (a == null)
    return b == null;
  if (b == null || a.length != b.length)
    return false;
  for (T value in a) {
    if (!b.contains(value))
      return false;
  }
  return true;
}