ComputeIDs<D extends Object> constructor
ComputeIDs<D extends Object> (
- List<
D> ids, { - ComputeIDCompare<
D> ? compare, - ComputeIDHash<
D> ? hash,
Creates a sorted and deduplicated ID collection.
IDs are copied from ids, sorted using compare, and duplicates
are removed according to the comparator.
Implementation
ComputeIDs(List<D> ids, {ComputeIDCompare<D>? compare, this.hash})
: _ids = ids.toList(),
compare =
_Comparer.resolveCompare<D>(compare) ?? _Comparer._defaultCompare {
final compare = this.compare;
_ids.sort(compare);
assert(checkIDsSorted());
// Deduplicate (requires sorted list):
for (var i = _ids.length - 1; i > 0; --i) {
if (compare(_ids[i], _ids[i - 1]) == 0) {
_ids.removeAt(i);
}
}
}