Set<E>抽象 接口

一个只包含对象的集合,每个对象只能出现一次。

也就是说,对于每种元素类型的对象,对象要么被认为是存在于集合中,要么被认为不在集合中。

Set实现在某些元素可能被认为是不可区分的情况下。这些元素在集合的任何操作中被视为相同。

默认的Set实现,LinkedHashSet,将对象视为不可区分,如果它们根据Object.==Object.hashCode相等。

迭代集合中的元素可能是无序的,也可能是有序的。示例

  • HashSet是无序的,这意味着它的迭代顺序是未指定的,
  • LinkedHashSet按其元素的插入顺序迭代,
  • 以及像SplayTreeSet这样的有序集按排序顺序迭代元素。

通常不允许在执行集合操作时修改集合(添加或删除元素),例如在调用forEachcontainsAll时。同时也不允许修改集合,无论是迭代集合本身,还是任何由集合支持的Iterable,例如由wheremap等方法返回的。

通常不允许在元素存在于集合时修改它们之间的相等性(从而也不修改它们的哈希码)。一些专门的子类型可能更宽容,在这种情况下,它们应记录此行为。

实现类型
实现者
可用的扩展

构造函数

Set()
创建一个空的Set
factory
Set.from(Iterable elements)
创建一个包含所有elementsSet
factory
Set.identity()
创建一个空的标识Set
factory
Set.of(Iterable<E> elements)
elements创建一个Set
factory
Set.unmodifiable(Iterable<E> elements)
elements创建一个不可修改的Set
factory

属性

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
等于运算符。
继承

静态方法

castFrom<S, T>(Set<S> source, {Set<R> newSet<R>()?}) Set<T>
source适配为Set<T>
覆盖