add method
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;
}