OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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.core; |
6 | 6 |
7 /** | 7 /** |
8 * A collection of objects in which each object can occur only once. | 8 * A collection of objects in which each object can occur only once. |
9 * | 9 * |
10 * That is, for each object of the element type, the object is either considered | 10 * That is, for each object of the element type, the object is either considered |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 * Creates an empty identity [Set]. | 48 * Creates an empty identity [Set]. |
49 * | 49 * |
50 * The created [Set] is a [LinkedHashSet] that uses identity as equality | 50 * The created [Set] is a [LinkedHashSet] that uses identity as equality |
51 * relation. | 51 * relation. |
52 * | 52 * |
53 * The set is equivalent to one created by `new LinkedHashSet<E>.identity()`. | 53 * The set is equivalent to one created by `new LinkedHashSet<E>.identity()`. |
54 */ | 54 */ |
55 factory Set.identity() = LinkedHashSet<E>.identity; | 55 factory Set.identity() = LinkedHashSet<E>.identity; |
56 | 56 |
57 /** | 57 /** |
58 * Creates a [Set] that contains all elements of [other]. | 58 * Creates a [Set] that contains all of [elements]. |
| 59 * |
| 60 * All the [elements] should be assignable to [E]. |
| 61 * The `elements` iterable itself can have any type, |
| 62 * so this constructor can be used to down-cast a `Set`, for example as: |
| 63 * |
| 64 * Set<SuperType> superSet = ...; |
| 65 * Set<SubType> subSet = |
| 66 * new Set<SubType>.from(superSet.where((e) => e is SubType)); |
59 * | 67 * |
60 * The created [Set] is a [LinkedHashSet]. As such, it considers elements that | 68 * The created [Set] is a [LinkedHashSet]. As such, it considers elements that |
61 * are equal (using [==]) to be undistinguishable, and requires them to | 69 * are equal (using [==]) to be indistinguishable, and requires them to |
62 * have a compatible [Object.hashCode] implementation. | 70 * have a compatible [Object.hashCode] implementation. |
63 * | 71 * |
64 * The set is equivalent to one created by `new LinkedHashSet<E>.from(other)`. | 72 * The set is equivalent to one created by |
| 73 * `new LinkedHashSet<E>.from(elements)`. |
65 */ | 74 */ |
66 factory Set.from(Iterable<E> other) = LinkedHashSet<E>.from; | 75 factory Set.from(Iterable elements) = LinkedHashSet<E>.from; |
67 | 76 |
68 /** | 77 /** |
69 * Provides an iterator that iterates over the elements of this set. | 78 * Provides an iterator that iterates over the elements of this set. |
70 * | 79 * |
71 * The order of iteration is defined by the individual `Set` implementation, | 80 * The order of iteration is defined by the individual `Set` implementation, |
72 * but must be consistent between changes to the set. | 81 * but must be consistent between changes to the set. |
73 */ | 82 */ |
74 Iterator<E> get iterator; | 83 Iterator<E> get iterator; |
75 | 84 |
76 /** | 85 /** |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 /* Creates a [Set] with the same elements and behavior as this `Set`. | 179 /* Creates a [Set] with the same elements and behavior as this `Set`. |
171 * | 180 * |
172 * The returned set behaves the same as this set | 181 * The returned set behaves the same as this set |
173 * with regard to adding and removing elements. | 182 * with regard to adding and removing elements. |
174 * It initially contains the same elements. | 183 * It initially contains the same elements. |
175 * If this set specifies an ordering of the elements, | 184 * If this set specifies an ordering of the elements, |
176 * the returned set will have the same order. | 185 * the returned set will have the same order. |
177 */ | 186 */ |
178 Set<E> toSet(); | 187 Set<E> toSet(); |
179 } | 188 } |
OLD | NEW |