add method

bool add (E element)
override

Adds value to the set.

Returns true if value (or an equal value) was not yet in the set. Otherwise returns false and the set is not changed.

Example:

var set = new Set();
var time1 = new DateTime.fromMillisecondsSinceEpoch(0);
var time2 = new DateTime.fromMillisecondsSinceEpoch(0);
// time1 and time2 are equal, but not identical.
Expect.isTrue(time1 == time2);
Expect.isFalse(identical(time1, time2));
set.add(time1);  // => true.
// A value equal to time2 exists already in the set, and the call to
// add doesn't change the set.
set.add(time2);  // => false.
Expect.isTrue(set.length == 1);
Expect.isTrue(identical(time1, set.first));

Implementation

bool add(E element) {
  int compare = _splay(element);
  if (compare == 0) return false;
  _addNewRoot(_SplayTreeNode(element), compare);
  return true;
}