一个只包含对象的集合,每个对象只能出现一次。
也就是说,对于每种元素类型的对象,对象要么被认为是存在于集合中,要么被认为不在集合中。
Set实现在某些元素可能被认为是不可区分的情况下。这些元素在集合的任何操作中被视为相同。
默认的Set实现,LinkedHashSet,将对象视为不可区分,如果它们根据Object.==和Object.hashCode相等。
迭代集合中的元素可能是无序的,也可能是有序的。示例
- HashSet是无序的,这意味着它的迭代顺序是未指定的,
- LinkedHashSet按其元素的插入顺序迭代,
- 以及像SplayTreeSet这样的有序集按排序顺序迭代元素。
通常不允许在执行集合操作时修改集合(添加或删除元素),例如在调用forEach或containsAll时。同时也不允许修改集合,无论是迭代集合本身,还是任何由集合支持的Iterable,例如由where和map等方法返回的。
通常不允许在元素存在于集合时修改它们之间的相等性(从而也不修改它们的哈希码)。一些专门的子类型可能更宽容,在这种情况下,它们应记录此行为。
- 实现类型
- 实现者
- 可用的扩展
构造函数
属性
- first → E
- 第一个元素。没有设置器继承
- hashCode → int
- 本对象的哈希代码。没有设置器继承
- isEmpty → bool
- 是否这个集合没有元素。没有设置器继承
- isNotEmpty → bool
- 是否这个集合至少有一个元素。没有设置器继承
-
iterator → Iterator<
E> - 一个迭代器,用于遍历这个集合的元素。没有设置器覆盖
- last → E
- 最后一个元素。没有设置器继承
- length → int
- 此集合中的元素数量。没有设置器继承
- runtimeType → Type
- 表示对象的运行时类型。没有设置器继承
- single → E
- 检查这个可迭代器只有一个元素,并返回该元素。没有设置器继承
方法
-
add(
E value) → bool - 将
value
添加到集合中。 -
addAll(
Iterable< E> elements) → void - 将所有
elements
添加到此集合中。 -
any(
bool test(E element)) → bool - 检查此可迭代器的任何元素是否满足
test
。继承 -
cast<
R> () → Set< R> - 提供了将此集合视为一个包含
R
实例集合的视图。覆盖 -
clear(
) → void - 移除集合中的所有元素。
-
contains(
Object? value) → bool value
是否在集合中。覆盖-
containsAll(
Iterable< Object?> other) → bool - 是否此集合包含
other
的元素。 -
difference(
Set< Object?> other) → Set<E> - 创建一个新的集合,包含本集合中不在
other
中的元素。 -
elementAt(
int index) → E - 返回第
index
个元素。继承 -
every(
bool test(E element)) → bool - 检查此可迭代的每个元素是否都满足
test
。继承 -
expand<
T> (Iterable< T> toElements(E element)) → Iterable<T> - 将此 Iterable 的每个元素展开成零个或多个元素。继承
-
firstWhere(
bool test(E element), {E orElse()?}) → E - 返回满足给定谓词
test
的第一个元素。继承 -
fold<
T> (T initialValue, T combine(T previousValue, E element)) → T - 通过迭代将集合中的每个元素与现有值结合,简化为单个值。继承
-
followedBy(
Iterable< E> other) → Iterable<E> - 创建此可迭代对象和
other
的懒加载连接。继承 -
forEach(
void action(E element)) → void - 在迭代顺序中为每个元素调用
action
。继承 -
intersection(
Set< Object?> other) → Set<E> - 创建一个新的集合,它是本集合和
other
的交集。 -
join(
[String separator = ""]) → String - 将每个元素转换为字符串并将字符串连接。继承
-
lastWhere(
bool test(E element), {E orElse()?}) → E - 是满足给定谓词
test
的最后一个元素。继承 -
lookup(
Object? object) → E? - 如果集合中存在等于
object
的对象,则返回它。 -
map<
T> (T toElement(E e)) → Iterable< T> - 通过
toElement
修改的当前可迭代元素。继承 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承
-
reduce(
E combine(E value, E element)) → E - 通过迭代结合集合中的元素使用提供的函数将集合减少到单个值。继承
-
remove(
Object? value) → bool - 从集合中移除
value
。 -
removeAll(
Iterable< Object?> elements) → void - 从本集合中移除
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 orElse()?}) → E - 满足
test
的单个元素。继承 -
skip(
int count) → Iterable< E> - 创建一个 Iterable,提供除了前
count
个元素之外的所有元素。继承 -
skipWhile(
bool test(E value)) → Iterable< E> - 创建一个在满足
test
条件时跳过开头元素的Iterable
。继承 -
take(
int count) → Iterable< E> - 创建一个惰性可迭代的对象,包含此可迭代对象的前
count
个元素。继承 -
takeWhile(
bool test(E value)) → Iterable< E> - 创建一个惰性可迭代对象,包含满足
test
的开头元素。继承 -
toList(
{bool growable = true}) → List< E> - 创建一个包含此 Iterable 元素的 List。继承
-
toSet(
) → Set< E> - 创建一个具有与此
Set
相同元素和行为的新 Set。覆盖 -
toString(
) → String - 此对象的字符串表示。继承
-
union(
Set< E> other) → Set<E> - 创建一个新集合,包含此集合和
other
的所有元素。 -
where(
bool test(E element)) → Iterable< E> - 创建一个新的延迟的可迭代对象,其中包含满足谓词
test
的所有元素。继承 -
whereType<
T> () → Iterable< T> - 创建一个新的延迟的可迭代对象,其中包含具有类型
T
的所有元素。继承
运算符
-
operator ==(
Object other) → bool - 等于运算符。继承