x_unique_list 1.1.1 copy "x_unique_list: ^1.1.1" to clipboard
x_unique_list: ^1.1.1 copied to clipboard

A Flutter - Dart package that provides a list with unique elements based on a custom uniqueness condition.

example/x_unique_list.dart

import 'package:x_unique_list/x_unique_list.dart';

class User {
  final int id;
  final String name;

  User(this.id, this.name);

  @override
  String toString() => 'User(id: $id, name: $name)';

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      (other is User && id == other.id && name == other.name);

  @override
  int get hashCode => Object.hash(id, name);
}

void main() {
  // Uniqueness based on `id`
  final users = XUniqueList<User>((u) => u.id);

  users.add(User(1, 'Ahmad'));
  users.add(User(2, 'John'));

  // ❌ Same id → will NOT be added
  users.add(User(1, 'Duplicate'));

  // ✅ Replace (same id, different value)
  users.addOrReplace(User(1, 'Updated Ahmad'));

  // ❌ No-op (identical item)
  final result = users.addOrReplace(User(1, 'Updated Ahmad'));
  print('Was added/replaced? $result'); // false

  // Remove by condition (safe)
  users.removeOneWhere((u) => u.id == 2);

  print('\nFinal users:');
  for (final u in users.items) {
    print(u);
  }
}
4
likes
160
points
154
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter - Dart package that provides a list with unique elements based on a custom uniqueness condition.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

More

Packages that depend on x_unique_list