NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #53 most downloaded on pub.dev
Collections and utilities functions and classes related to collections.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 42 of 46 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
53 releases · first in 2013
Move to dart-lang/core monorepo.
dart-lang/core monorepo.Deprecate transitiveClosure. Consider using package:graphs.
shuffled to IterableExtension.IterableExtension.sample results.mergeSort when the runtime iterable generic is a subtype of the static
generic.CanonicalizedMap: added constructor fromEntries.mixin.extension IterableIterableExtension<T> on Iterable<Iterable<T>>
flattenedToList as a performance improvement over flattened.flattenedToSet as new behavior for flattening to unique elements.transitiveClosure. Consider using package:graphs.whereNotNull() from IterableNullableExtension. Use nonNulls
instead - this is an equivalent extension available in Dart core since
version 3.0.^3.4.0One column per quarter.
copy: copies an instance without recalculating the canonical values of the keys.
CanonicalizedMap:
copy: copies an instance without recalculating the canonical values of the keys.toMap: creates a Map<K,V> (with the original key values).toMapOfCanonicalKeys: creates a Map<C,V> (with the canonicalized keys).ListSlice.slice and ListExtensions.slice.package:lints 2.0.1.Accept Dart SDK versions above 3.0.
Improve docs for splitAfter and splitBefore.
splitAfter and splitBefore.Add Iterable.elementAtOrNull and List.elementAtOrNull extension methods.
Iterable.elementAtOrNull and List.elementAtOrNull extension methods.lastBy() function that converts an Iterable to a Map by
grouping its elements using a function, keeping the last element for each
computed key. Also available as an extension method on Iterable.Add an Iterable.slices extension method.
Iterable.slices extension method.BoolList class for space-efficient lists of boolean values.IterableExtension.sortedBy method.min, max, minOrNull and maxOrNull getters to
IterableDoubleExtension, IterableNumberExtension and
IterableIntegerExtensionUnorderedIterableEquality and SetEquality to implement Equality
with a non-nullable generic to allows assignment to variables with that type.
Assignment to Equality with a nullable type is still allowed because of
covariance. The equals and hash methods continue to accept nullable
arguments.avoid_dynamic_calls lint.Stable release for null safety.
Fix typo in extension method expandIndexed.
expandIndexed.>=2.12.0-0 <3.0.0 based on beta release
guidelines.Allow prerelease versions of the 2.12.x sdk.
Allow prerelease versions of the 2.12.x sdk.
Remove the unusable setter UnionSetController.set=. This was mistakenly
added to the public API but could never be called.
Add extra optional Random argument to shuffle.
Add a large number of extension methods on Iterable and List types,
and on a few other types.
These either provide easy access to the operations from algorithms.dart,
or provide convenience variants of existing Iterable and List methods
like singleWhereOrNull or forEachIndexed.
Allow 2.10 stable and 2.11.0 dev SDK versions.
toUnorderedList method on PriorityQueue.HeapPriorityQueue's remove and contains methods
use == for equality checks.
Previously used comparison(a, b) == 0 as criteria, but it's possible
to have multiple elements with the same priority in a queue, so that
could remove the wrong element.
Still requires that objects that are == also have the same priority.Update for the 2.10 dev sdk.
Update for the 2.10 dev sdk.
Allow the <=2.9.10 stable sdks.
Note that 1.15.0 may not be the final stable null safety release version, we reserve the right to release it as a 2.0.0 breaking change.
Pre-release for the null safety migration of this package.
Note that 1.15.0 may not be the final stable null safety release version,
we reserve the right to release it as a 2.0.0 breaking change.
This release will be pinned to only allow pre-release sdk versions starting
from 2.9.0-dev.18.0, which is the first version where this package will
appear in the null safety allow list.
Nothing published for this version
Deprecate mapMap. The Map interface has a map call and map literals can use for-loop elements which supersede this method.
mapMap. The Map interface has a map call and map literals can
use for-loop elements which supersede this method.Fix CombinedMapView.keys, CombinedMapView.length, CombinedMapView.forEach, and CombinedMapView.values to work as specified and not repeat duplicate it
CombinedMapView.keys, CombinedMapView.length,
CombinedMapView.forEach, and CombinedMapView.values to work as specified
and not repeat duplicate items from the maps.
length getter now must iterate all maps in
order to remove duplicates and return an accurate length, so it is no
longer O(maps).* Set max SDK version to <3.0.0.
<3.0.0.Stop depending on SDK retype and deprecate methods.
retype and deprecate methods.Fixed bugs where QueueList, MapKeySet, and MapValueSet did not adhere to the contract laid out by List.cast, Set.cast and Map.cast respectively. The r
QueueList, MapKeySet, and MapValueSet did not adhere to
the contract laid out by List.cast, Set.cast and Map.cast respectively.
The returned instances of these methods now correctly forward to the existing
instance instead of always creating a new copy.Only the Dart 2 dev SDK (>=2.0.0-dev.22.0) is now supported.
>=2.0.0-dev.22.0) is now supported.UnimplementedError.Make DefaultEquality's equals() and hash() methods take any Object rather than objects of type E. This makes const DefaultEquality () usable as Equali
Make DefaultEquality's equals() and hash() methods take any Object
rather than objects of type E. This makes const DefaultEquality<Null>()
usable as Equality<E> for any E, which means it can be used in a const
context which expects Equality<E>.
This makes the default arguments of various other const equality constructors work in strong mode.
Fix issue with EmptyUnmodifiableSet's stubs that were introduced in 1.14.4.
EmptyUnmodifiableSet's stubs that were introduced in 1.14.4.Add implementation stubs of upcoming Dart 2.0 core library methods, namely new methods for classes that implement Iterable, List, Map, Queue, and Set.
Iterable, List, Map, Queue,
and Set.Fix MapKeySet.lookup to be a valid override in strong mode.
MapKeySet.lookup to be a valid override in strong mode.Add type arguments to SyntheticInvocation.
SyntheticInvocation.Make Equality implementations accept null as argument to hash.
Equality implementations accept null as argument to hash.Add CombinedListView, a view of several lists concatenated together.
CombinedListView, a view of several lists concatenated together.CombinedIterableView, a view of several iterables concatenated together.CombinedMapView, a view of several maps concatenated together.* Add EqualityBy
EqualityByFix bug in equalsIgnoreAsciiCase.
Add CaseInsensitiveEquality.
Fix bug in equalsIgnoreAsciiCase.
Add EqualityMap and EqualitySet classes which use Equality objects for key and element equality, respectively.
EqualityMap and EqualitySet classes which use Equality objects for
key and element equality, respectively.Set.difference now takes a Set as argument.
Set.difference now takes a Set<Object> as argument.* Fix some documentation bugs.
Add a top-level stronglyConnectedComponents() function that returns the strongly connected components in a directed graph.
stronglyConnectedComponents() function that returns the
strongly connected components in a directed graph.Add a top-level mapMap() function that works like Iterable.map() on a Map.
Add a top-level mapMap() function that works like Iterable.map() on a
Map.
Add a top-level mergeMaps() function that creates a new map with the
combined contents of two existing maps.
Add a top-level groupBy() function that converts an Iterable to a Map by
grouping its elements using a function.
Add top-level minBy() and maxBy() functions that return the minimum and
maximum values in an Iterable, respectively, ordered by a derived value.
Add a top-level transitiveClosure() function that returns the transitive
closure of a directed graph.
Add a const UnmodifiableSetView.empty() constructor.
const UnmodifiableSetView.empty() constructor.Add a UnionSet class that provides a view of the union of a set of sets.
Add a UnionSet class that provides a view of the union of a set of sets.
Add a UnionSetController class that provides a convenient way to manage the
contents of a UnionSet.
Fix another incorrectly-declared generic type.
Fix an incorrectly-declared generic type.
Add DelegatingIterable.typed(), DelegatingList.typed(), DelegatingSet.typed(), DelegatingMap.typed(), and DelegatingQueue.typed() static methods. Thes
Add DelegatingIterable.typed(), DelegatingList.typed(),
DelegatingSet.typed(), DelegatingMap.typed(), and
DelegatingQueue.typed() static methods. These wrap untyped instances of
these classes with the correct type parameter, and assert the types of values
as they're accessed.
Fix the types for binarySearch() and lowerBound() so they no longer
require all arguments to be comparable.
Add generic annotations to insertionSort() and mergeSort().
Run dart format with the new style.
dart format with the new style.Deprecate top-level libraries other than package:collection/collection.dart, which exports these libraries' interfaces.
Add a new PriorityQueue() constructor that forwards to new HeapPriorityQueue().
Deprecate top-level libraries other than package:collection/collection.dart,
which exports these libraries' interfaces.
Add lowerBound to binary search for values that might not be present.
Add lowerBound to binary search for values that might not be present.
Verify that the is valid for CanonicalMap.[].
Add string comparators that ignore ASCII case and sort numbers numerically.
Fix type inconsistencies with Map and Set.
Map and Set.Export UnmodifiableMapView from the Dart core libraries.
UnmodifiableMapView from the Dart core libraries.Bug-fix for signatures of isValidKey arguments of CanonicalizedMap.
isValidKey arguments of CanonicalizedMap.Add a QueueList class that implements both Queue and List.
QueueList class that implements both Queue and List.Nothing published for this version
Add a CanonicalizedMap class that canonicalizes its keys to provide a custom equality relation.
CanonicalizedMap class that canonicalizes its keys to provide a custom
equality relation.* Fix all analyzer hints.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →