commit | 5f23499e326cbf30ae22fe87e988a7ff331af6fb | [log] [tgz] |
---|---|---|
author | lrn@google.com <lrn@google.com> | Thu Dec 19 12:36:15 2013 +0000 |
committer | lrn@google.com <lrn@google.com> | Thu Dec 19 12:36:15 2013 +0000 |
tree | 39bbb53af4a9ef773402ee605b81858fe1873f4a | |
parent | e837f6ef4e90b2cc17ec2daa57d259850239daa4 [diff] |
Adding license files to packages. R=sgjesse@google.com Review URL: https://codereview.chromium.org//119203002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/collection@31264 260f80e4-7a28-3924-810f-c04153c831b5
Helper libraries for working with collections.
The collection
package contains a number of separate libraries with utility functions and classes that makes working with collections easier.
The collection
package can be imported as separate libraries, or in totality:
import 'package:collection/equality.dart'; import 'package:collection/algorithms.dart'; import 'package:collection/wrappers.dart';
or
import 'package:collection/collection.dart';
The equality library gives a way to specify equality of elements and collections.
Collections in Dart have no inherent equality. Two sets are not equal, even if they contain exactly the same objects as elements.
The equality library provides a way to say define such an equality. In this case, for example, const SetEquality(const IdentityEquality())
is an equality that considers two sets equal exactly if they contain identical elements.
The library provides ways to define equalities on Iterable
s, List
s, Set
s, and Map
s, as well as combinations of these, such as:
const MapEquality(const IdentityEquality(), const ListEquality());
This equality considers maps equal if they have identical keys, and the corresponding values are lists with equal (operator==
) values.
The algorithms library contains functions that operate on lists.
It contains ways to shuffle a List
, do binary search on a sorted List
, and some different sorting algorithms.
The wrappers library contains classes that “wrap” a collection.
A wrapper class contains an object of the same type, and it forwards all methods to the wrapped object.
Wrapper classes can be used in various ways, for example to restrict the type of an object to that of a supertype, or to change the behavior of selected functions on an existing object.