Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(628)

Side by Side Diff: sdk/lib/collection/map.dart

Issue 11867024: Move some core classes to collection library. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update status files with bug number. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/collection/iterator.dart ('k') | sdk/lib/collection/queue.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.core; 5 part of dart.collection;
6 6
7 /**
8 * A [Map] is an associative container, mapping a key to a value.
9 * Null values are supported, but null keys are not.
10 */
11 abstract class Map<K, V> {
12 /**
13 * Creates a map with the default implementation.
14 */
15 factory Map() => new _HashMapImpl<K, V>();
16
17 /**
18 * Creates a [Map] that contains all key value pairs of [other].
19 */
20 factory Map.from(Map<K, V> other) => new _HashMapImpl<K, V>.from(other);
21
22
23 /**
24 * Returns whether this map contains the given [value].
25 */
26 bool containsValue(V value);
27
28 /**
29 * Returns whether this map contains the given [key].
30 */
31 bool containsKey(K key);
32
33 /**
34 * Returns the value for the given [key] or null if [key] is not
35 * in the map. Because null values are supported, one should either
36 * use containsKey to distinguish between an absent key and a null
37 * value, or use the [putIfAbsent] method.
38 */
39 V operator [](K key);
40
41 /**
42 * Associates the [key] with the given [value].
43 */
44 void operator []=(K key, V value);
45
46 /**
47 * If [key] is not associated to a value, calls [ifAbsent] and
48 * updates the map by mapping [key] to the value returned by
49 * [ifAbsent]. Returns the value in the map.
50 */
51 V putIfAbsent(K key, V ifAbsent());
52
53 /**
54 * Removes the association for the given [key]. Returns the value for
55 * [key] in the map or null if [key] is not in the map. Note that values
56 * can be null and a returned null value does not always imply that the
57 * key is absent.
58 */
59 V remove(K key);
60
61 /**
62 * Removes all pairs from the map.
63 */
64 void clear();
65
66 /**
67 * Applies [f] to each {key, value} pair of the map.
68 */
69 void forEach(void f(K key, V value));
70
71 /**
72 * The keys of [this].
73 */
74 // TODO(floitsch): this should return a [Set].
75 Iterable<K> get keys;
76
77 /**
78 * The values of [this].
79 */
80 Iterable<V> get values;
81
82 /**
83 * The number of {key, value} pairs in the map.
84 */
85 int get length;
86
87 /**
88 * Returns true if there is no {key, value} pair in the map.
89 */
90 bool get isEmpty;
91 }
92 7
93 /** 8 /**
94 * Hash map version of the [Map] interface. A [HashMap] does not 9 * Hash map version of the [Map] interface. A [HashMap] does not
95 * provide any guarantees on the order of keys and values in [keys] 10 * provide any guarantees on the order of keys and values in [keys]
96 * and [values]. 11 * and [values].
97 */ 12 */
98 abstract class HashMap<K, V> extends Map<K, V> { 13 abstract class HashMap<K, V> extends Map<K, V> {
99 /** 14 /**
100 * Creates a map with the default implementation. 15 * Creates a map with the default implementation.
101 */ 16 */
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 465
551 void clear() { 466 void clear() {
552 _map.clear(); 467 _map.clear();
553 _list.clear(); 468 _list.clear();
554 } 469 }
555 470
556 String toString() { 471 String toString() {
557 return Maps.mapToString(this); 472 return Maps.mapToString(this);
558 } 473 }
559 } 474 }
560
OLDNEW
« no previous file with comments | « sdk/lib/collection/iterator.dart ('k') | sdk/lib/collection/queue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698