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

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

Issue 838463002: Change List/Set/Map/Queue.from constructrs to accept any iterable. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2013, 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.collection; 5 part of dart.collection;
6 6
7 /** Default function for equality comparison in customized HashMaps */ 7 /** Default function for equality comparison in customized HashMaps */
8 bool _defaultEquals(a, b) => a == b; 8 bool _defaultEquals(a, b) => a == b;
9 /** Default function for hash-code computation in customized HashMaps */ 9 /** Default function for hash-code computation in customized HashMaps */
10 int _defaultHashCode(a) => a.hashCode; 10 int _defaultHashCode(a) => a.hashCode;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 /** 73 /**
74 * Creates an unordered identity-based map. 74 * Creates an unordered identity-based map.
75 * 75 *
76 * Effectively a shorthand for: 76 * Effectively a shorthand for:
77 * 77 *
78 * new HashMap(equals: identical, hashCode: identityHashCodeOf) 78 * new HashMap(equals: identical, hashCode: identityHashCodeOf)
79 */ 79 */
80 external factory HashMap.identity(); 80 external factory HashMap.identity();
81 81
82 /** 82 /**
83 * Creates a [HashMap] that contains all key value pairs of [other]. 83 * Creates a [HashMap] that contains all key/value pairs of [other].
84 */ 84 */
85 factory HashMap.from(Map<K, V> other) { 85 factory HashMap.from(Map other) {
86 return new HashMap<K, V>()..addAll(other); 86 HashMap<K, V> result = new HashMap<K, V>();
87 other.forEach((k, v) { result[k] = v; });
Søren Gjesse 2015/01/05 15:35:15 Add types K and V?
Lasse Reichstein Nielsen 2015/01/06 10:14:45 The forEach method has type (K',V')->void where ot
Søren Gjesse 2015/01/06 12:09:05 Of cause.
88 return result;
87 } 89 }
88 90
89 /** 91 /**
90 * Creates a [HashMap] where the keys and values are computed from the 92 * Creates a [HashMap] where the keys and values are computed from the
91 * [iterable]. 93 * [iterable].
92 * 94 *
93 * For each element of the [iterable] this constructor computes a key/value 95 * For each element of the [iterable] this constructor computes a key/value
94 * pair, by applying [key] and [value] respectively. 96 * pair, by applying [key] and [value] respectively.
95 * 97 *
96 * The keys of the key/value pairs do not need to be unique. The last 98 * The keys of the key/value pairs do not need to be unique. The last
(...skipping 19 matching lines...) Expand all
116 * overwrites the previous value. 118 * overwrites the previous value.
117 * 119 *
118 * It is an error if the two [Iterable]s don't have the same length. 120 * It is an error if the two [Iterable]s don't have the same length.
119 */ 121 */
120 factory HashMap.fromIterables(Iterable<K> keys, Iterable<V> values) { 122 factory HashMap.fromIterables(Iterable<K> keys, Iterable<V> values) {
121 HashMap<K, V> map = new HashMap<K, V>(); 123 HashMap<K, V> map = new HashMap<K, V>();
122 Maps._fillMapWithIterables(map, keys, values); 124 Maps._fillMapWithIterables(map, keys, values);
123 return map; 125 return map;
124 } 126 }
125 } 127 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698