ordered_set 6.1.1 copy "ordered_set: ^6.1.1" to clipboard
ordered_set: ^6.1.1 copied to clipboard

A simple implementation of an Ordered Set for Dart that allows multiple items with the same priority.

ordered_set #

Pub Version Build Status Coverage Status

A simple implementation for an ordered set for Dart.

It accepts a compare function that compares items for their priority.

Unlike Dart's SplayTreeSet, it allows for several different elements with the same priority to be added.

It also implements Iterable, so you can iterate it in O(n).

Usage #

A simple usage example:

  import 'package:ordered_set/ordered_set.dart';

  main() {
    final items = OrderedSet<int>();
    items.add(2);
    items.add(1);
    print(items.toList()); // [1, 2]
  }

Comparing #

In order to assist the creation of OrderedSet's, there is a Comparing class to easily create Comparables:

  // sort by name length
  final people = OrderedSet<Person>(Comparing.on((p) => p.name.length));

  // sort by name desc
  final people = OrderedSet<Person>(Comparing.reverse(Comparing.on((p) => p.name)));

  // sort by role and then by name
  final people = OrderedSet<Person>(Comparing.join([(p) => p.role, (p) => p.name]));

Contributing #

All contributions are very welcome! Please feel free to create Issues, help us with PR's or comment your suggestions, feature requests, bugs, et cetera. Give us a star if you liked it!

32
likes
160
points
40.4k
downloads

Publisher

verified publisherblue-fire.xyz

Weekly Downloads

A simple implementation of an Ordered Set for Dart that allows multiple items with the same priority.

Repository (GitHub)
View/report issues

Documentation

API reference

Funding

Consider supporting this project:

opencollective.com
github.com
patreon.com

License

MIT (license)

More

Packages that depend on ordered_set