对象的集合,其中每个对象只能出现一次。

也就是说,对于元素类型的每个对象,对象要么被认为是在Set中,要么不在Set中。

Set实现也许会认为一些元素是没有区别的。 对于Set中的任何操作,这些元素作为相同的对象被处理。

默认的Set实现是LinkedHashSet, 如果对于操作符Object.==元素对象相等的话,则认为它们是没有区别的。

迭代Set中的元素时,某些时候有可能是无序的,也有可能是有序的。例如:

当Set的一个操作正在执行的时候,通常不允许修改Set(添加或删除元素), 例如,在调用forEachcontainsAll期间。 在迭代Set或任何由Set提供支持的Iterable时,也不允许修改Set, 例如,wheremap方法的返回对象。

Inheritance
Implements
  • EfficientLength
Implemented by

Constructors

Set()

创建一个空的Set

factory
Set.from(Iterable elements)

创建一个包含所有elementsSet

factory
Set.identity()

创建一个空的,元素严格相等的Set

factory

Properties

first → E

返回第一个元素。

read-only, inherited
hashCode int

获取对象的哈希值。

read-only, inherited
isEmpty bool

如果this没有元素,则返回true

read-only, inherited
isNotEmpty bool

如果集合中至少有一个元素,返回true

read-only, inherited
iterator Iterator<E>

用于迭代所有元素的迭代器。

read-only
last → E

返回最后一个元素。

read-only, inherited
length int

返回this对象中元素的数量。

read-only, inherited
runtimeType Type

表示对象的运行时类型。

read-only, inherited
single → E

检查可迭代对象仅有一个元素,并返回那个元素。

read-only, inherited

Operators

operator ==(other) bool

相等操作符。

inherited

Methods

add(E value) bool

value添加到Set中。

addAll(Iterable<E> elements) → void

将所有elements添加到Set中。

any(bool f(E element)) bool

检查可迭代对象是否有任何一个元素满足test

inherited
clear() → void

删除Set中的所有元素。

contains(Object value) bool

如果value在Set中,返回true。

containsAll(Iterable<Object> other) bool

返回this是否包含other的所有元素。

difference(Set<E> other) Set<E>

返回一个新的Set,它是thisother的差集,包含属于this,且不属于other的所有元素。

elementAt(int index) → E

通过索引返回元素。

inherited
every(bool f(E element)) bool

检查可迭代对象的每一个元素是否都满足test

inherited
expand(Iterable f(E element)) Iterable

Iterable的每个元素扩展为0个或多个元素。

inherited
firstWhere(bool test(E element), {E orElse()}) → E

返回满足test断言的第一个元素。

inherited
fold(initialValue, dynamic combine(previousValue, E element)) → dynamic

通过迭代,将集合的所有元素与一个存在的值(initialValue)用提供的函数结合(combine), 将集合换算成单一的值,

inherited
forEach(void f(E element)) → void

对集合的每个元素,按迭代顺序应用f函数。

inherited
intersection(Set<Object> other) Set<E>

返回一个新的Set,它是thisother的交集。

join([String separator = ""]) String

将每个元素转换成String并连接。

inherited
lastWhere(bool test(E element), {E orElse()}) → E

返回满足test断言的最后一个元素。

inherited
lookup(Object object) → E

在Set中,如果一个元素等于object,返回元素。

map(dynamic f(E e)) Iterable

按迭代顺序,对Iterable的每个元素调用f,用返回值创建一个新的惰性Iterable

inherited
noSuchMethod(Invocation invocation) → dynamic

当一个不存在的函数或成员变量被访问时,该函数被调用。

inherited
reduce(E combine(E value, E element)) → E

通过迭代,用提供的函数结合(combine)集合的所有元素,将集合换算成单一的值,

inherited
remove(Object value) bool

从Set中删除value。 如果value在Set中,返回true。否则,返回false。 如果value不在Set中,方法不会产生任何效果。

removeAll(Iterable<Object> elements) → void

this中删除elements的每个元素。

removeWhere(bool test(E element)) → void

删除所有满足test的元素。

retainAll(Iterable<Object> elements) → void

删除不在elements中的所有元素。

retainWhere(bool test(E element)) → void

删除所有不满足test的元素。

singleWhere(bool test(E element)) → E

返回满足test的单个元素。

inherited
skip(int count) Iterable<E>

返回一个惰性的可迭代对象,包含此对象除了最初的count个元素外的所有元素。

inherited
skipWhile(bool test(E value)) Iterable<E>

跳过最初的满足测试条件test的元素,返回Iterable

inherited
take(int count) Iterable<E>

返回一个惰性的可迭代对象,包含有此对象最初的count个元素。

inherited
takeWhile(bool test(E value)) Iterable<E>

返回一个惰性的Iterable,包含最初的满足test的所有元素。

inherited
toList({bool growable: true}) List<E>

创建一个包含Iterable所有元素的List

inherited
toSet() Set<E>

用与this相同的元素和行为,创建一个新的Set

toString() String

返回一个字符串,表示this的所有(或部分)元素。

inherited
union(Set<E> other) Set<E>

返回一个新的Set,它包含thisother的所有元素(并集)。

where(bool test(E element)) Iterable<E>

使用所有满足测试的元素,创建一个新的惰性Iterable

inherited