Set 类的基本实现。
此类提供了一种仅依赖于抽象成员(如 add、contains、lookup、remove、iterator、length 和 toSet)的 Set 基本实现。
某些方法假设 toSet
创建了一个可修改的集合。如果使用此基类来实现不可修改的集合,其中 toSet
应返回一个不可修改的集合,则需要重新实现 retainAll、union、intersection 和 difference。
使用此基类实现的 Set 应考虑在常数时间内实现 clear
。默认实现通过移除每个元素来完成。
构造函数
- SetBase()
-
const
属性
- first → E
- 第一个元素。无设置器覆盖
- hashCode → int
- 此对象的哈希码。无设置器继承
- isEmpty → bool
- 此集合是否没有元素。无设置器覆盖
- isNotEmpty → bool
- 此集合是否至少有一个元素。无设置器覆盖
-
iterator → Iterator<
E> - 遍历此集合元素的迭代器。无设置器覆盖
- last → E
- 最后一个元素。无设置器覆盖
- length → int
- 此 Iterable 中的元素数量。无设置器覆盖
- runtimeType → Type
- 对象的运行时类型表示。无设置器继承
- single → E
- 检查此可迭代对象是否只有一个元素,并返回该元素。无设置器覆盖
方法
-
add(
E value) → bool - 将
value
添加到集合中。override -
addAll(
Iterable< E> elements) → void - 将所有
elements
添加到该集合中。override -
any(
bool test(E element)) → bool - 检查该可迭代对象中的任何元素是否满足
test
条件。override -
cast<
R> () → Set< R> - 提供以
R
实例集合为视图的此集合。override -
clear(
) → void - 从集合中删除所有元素。override
-
contains(
Object? element) → bool - 判断
value
是否在集合中。override -
containsAll(
Iterable< Object?> other) → bool - 判断此集合是否包含
other
中的所有元素。override -
difference(
Set< Object?> other) → Set<E> - 创建一个新集合,包含此集合中不在
other
中的元素。override -
elementAt(
int index) → E - 返回第
index
个元素。override -
every(
bool f(E element)) → bool - 检查该可迭代对象中的每个元素是否都满足
test
条件。override -
expand<
T> (Iterable< T> f(E element)) → Iterable<T> - 将此 可迭代对象 的每个元素展开为零个或多个元素。override
-
firstWhere(
bool test(E value), {E orElse()?}) → E - 找到满足给定谓词的第一个元素。override
-
fold<
T> (T initialValue, T combine(T previousValue, E element)) → T - 通过迭代将集合中的每个元素与现有值组合来减少集合到一个单一值。override
-
followedBy(
Iterable< E> other) → Iterable<E> - 创建当前可迭代对象和
other
的惰性连接。override -
forEach(
void f(E element)) → void - 按迭代顺序对可迭代对象的每个元素调用
action
。override -
intersection(
Set< Object?> other) → Set<E> - 创建一个新集合,它是当前集合和
other
的交集。override -
join(
[String separator = ""]) → String - 将每个元素转换为 String 并连接这些字符串。override
-
lastWhere(
bool test(E value), {E orElse()?}) → E - 找到满足给定谓词的最后一个元素。override
-
lookup(
Object? element) → E? - 如果集合中存在与
object
相等的对象,则返回它。override -
map<
T> (T f(E element)) → Iterable< T> - 通过
toElement
修改当前可迭代对象的元素。override -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承
-
reduce(
E combine(E value, E element)) → E - 通过迭代使用提供的函数组合集合的元素来将集合缩减为一个值。override
-
remove(
Object? value) → bool - 从集合中移除
value
。override -
removeAll(
Iterable< Object?> elements) → void - 从该集合中移除
elements
的每个元素。override -
removeWhere(
bool test(E element)) → void - 移除满足
test
的该集合的所有元素。override -
retainAll(
Iterable< Object?> elements) → void - 移除不在
elements
中的该集合的所有元素。override -
retainWhere(
bool test(E element)) → void - 移除不满足
test
的该集合的所有元素。override -
singleWhere(
bool test(E value), {E orElse()?}) → E - 满足
test
的单个元素。override -
skip(
int n) → Iterable< E> - 创建一个 Iterable,提供除了前
count
个元素之外的所有元素。override -
skipWhile(
bool test(E value)) → Iterable< E> - 创建一个在满足条件时跳过开头元素的
Iterable
。override -
take(
int n) → Iterable< E> - 创建一个包含此可迭代器前n个元素的惰性可迭代器。override
-
takeWhile(
bool test(E value)) → Iterable< E> - 创建一个满足条件的开头元素的惰性可迭代器。override
-
toList(
{bool growable = true}) → List< E> - 创建包含此
Iterable
元素的一个List
。override -
toSet(
) → Set< E> - 创建一个具有与这个
Set
相同元素和行为的Set
。override -
toString(
) → String - 此对象的一个字符串表示。override
-
union(
Set< E> other) → Set<E> - 创建一个包含此集合和
other
中所有元素的新的集合。override -
where(
bool f(E element)) → Iterable< E> - 创建一个新的惰性
Iterable
,包含满足谓词test
的所有元素。override -
whereType<
T> () → Iterable< T> - 创建一个新的惰性
Iterable
,包含具有类型T
的所有元素。override
操作符
-
operator ==(
Object other) → bool - 等于操作符。继承
静态方法
-
setToString(
Set set) → String - 将 Set 转换为 String。