| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// Classes and utilities that supplement the collection support in dart:core. |
| /// |
| /// To use this library in your code: |
| /// ```dart |
| /// import 'dart:collection'; |
| /// ``` |
| /// |
| /// ## Map |
| /// A finite mapping from unique keys to their associated values. |
| /// Allows efficient lookup of the value associated with a key, if any, |
| /// and iterating through the individual keys and values of the map. |
| /// The [Map] interface has a number of implementations, including the following: |
| /// * [HashMap] is unordered, the order of iteration is not guaranteed. |
| /// * [LinkedHashMap] iterates in key insertion order. |
| /// * [SplayTreeMap] iterates the keys in sorted order. |
| /// * [UnmodifiableMapView] is a wrapper, an unmodifiable [Map] view of another |
| /// `Map`. |
| /// |
| /// ## Set |
| /// A collection of objects in which each object can occur only once. |
| /// The [Set] interface has a number of implementations, including the following: |
| /// * [HashSet] the order of the objects in the iterations is not guaranteed. |
| /// * [LinkedHashSet] iterates the objects in insertion order. |
| /// * [SplayTreeSet] iterates the objects in sorted order. |
| /// * [UnmodifiableSetView] is a wrapper, an unmodifiable [Set] view of another |
| /// `Set`. |
| /// |
| /// ## Queue |
| /// A queue is a sequence of elements that is intended to be modified, |
| /// by adding or removing elements, only at its ends. |
| /// Dart queues are *double ended* queues, which means that they can be |
| /// accessed equally from either end, and can therefore be used |
| /// to implement both stack and queue behavior. |
| /// * [Queue] is the general interface for queues. |
| /// * [ListQueue] is a list-based queue. Default implementation for [Queue]. |
| /// * [DoubleLinkedQueue] is a queue implementation based on a double-linked |
| /// list. |
| /// |
| /// ## List |
| /// An indexable Sequence of objects. Objects can be accessed using their |
| /// position, index, in the sequence. [List] is also called an "array" in other |
| /// programming languages. |
| /// * [UnmodifiableListView] is a wrapper, an unmodifiable [List] view of |
| /// another `List`. |
| /// |
| /// ## LinkedList |
| /// [LinkedList] is a specialized double-linked list of elements that extends |
| /// [LinkedListEntry]. Each element knows its own place in the linked list, |
| /// as well as which list it is in. |
| /// {@category Core} |
| library dart.collection; |
| |
| import 'dart:_internal' hide Symbol; |
| import 'dart:math' show Random; // Used by ListMixin.shuffle. |
| |
| export 'dart:_internal' show DoubleLinkedQueueEntry; |
| |
| part 'collections.dart'; |
| part 'hash_map.dart'; |
| part 'hash_set.dart'; |
| part 'iterable.dart'; |
| part 'iterator.dart'; |
| part 'linked_hash_map.dart'; |
| part 'linked_hash_set.dart'; |
| part 'linked_list.dart'; |
| part 'list.dart'; |
| part 'maps.dart'; |
| part 'queue.dart'; |
| part 'set.dart'; |
| part 'splay_tree.dart'; |