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(compare) {
_ids.sort(compare);
final cmp = this.compare ?? _Comparer._defaultCompare;
// Deduplicate (requires sorted list):
for (var i = _ids.length - 1; i > 0; --i) {
if (cmp(_ids[i], _ids[i - 1]) == 0) {
_ids.removeAt(i);
}
}
}