unique<A> function
- Eq<
A> eq
Creates an ImmutableList by filtering out duplicate items using the eq
comparator.
Example:
final list = ImmutableList<int>([1, 2, 2, 3, 3]);
final uniqueList = unique(Eq.fromDefault<int>())(list);
print(uniqueList.items); // Outputs: (1, 2, 3)
Implementation
ImmutableList<A> Function(ImmutableList<A>) unique<A>(Eq<A> eq) =>
(ImmutableList<A> list) {
final seen = <A>{};
return ImmutableList(list._items.where((item) {
final isDuplicate = seen.any((seenItem) => eq.equals(item, seenItem));
if (!isDuplicate) {
seen.add(item);
}
return !isDuplicate;
}).toList());
};