add method Null safety
- 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 = Set();
var time1 = DateTime.fromMillisecondsSinceEpoch(0);
var time2 = DateTime.fromMillisecondsSinceEpoch(0);
// time1 and time2 are equal, but not identical.
assert(time1 == time2);
assert(!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.
assert(set.length == 1);
assert(identical(time1, set.first));
Implementation
bool add(E element) {
int compare = _splay(element);
if (compare == 0) return false;
_addNewRoot(_SplayTreeSetNode(element), compare);
return true;
}