ListBase<E>抽象 混入

列表的抽象实现。

ListBase 可用作实现 List 接口的基类。

此类仅使用 lengthoperator[] 以及成员实现所有读取操作。它使用这些以及 addlength=operator[] 类来实现写入操作。使用此基类的类应该实现这五个操作。

注意:出于向后兼容性原因,有一个默认的 add 实现仅适用于具有可空元素类型的列表。对于具有非可空元素类型的列表,必须实现 add 方法。

注意:仅将四个 length[] 读取/写入操作转发到普通可增长 List(如通过 [] 文本创建的)将给 ListBaseaddaddAll 操作带来非常差的表现。这些操作通过为每个 add 操作增加列表的长度来实现,而重复增加可增长列表的长度效率低下。为了避免这种情况,请覆盖 'add' 和 'addAll' 以直接转发到可增长列表,或者如果可能,使用 "package:collection/collection.dart" 中的 DelegatingList 而不是 ListMixin

实现类型
实现者
可用扩展

构造函数

ListBase()
const

属性

first ↔ E
第一个元素。
getter/setter pairoverride
hashCode int
此对象的哈希码。
no setterinherited
isEmpty bool
此集合是否没有元素。
no setteroverride
isNotEmpty bool
此集合是否至少有一个元素。
no setteroverride
迭代器 迭代器<E>
一个新的 迭代器,允许迭代此 可迭代 的元素。
no setteroverride
last ↔ E
最后一个元素。
getter/setter pairoverride
length int
此列表中对象的数量。
getter/setter 对继承
reversed 可迭代<E>
以反向顺序排列此列表中对象的 可迭代
no setteroverride
runtimeType Type
对象运行时类型的表示。
no setterinherited
single → E
检查此可迭代是否只有一个元素,并返回该元素。
no setteroverride

方法

add(E element) → void
value 添加到此列表的末尾,长度增加一个。
覆盖
addAll(可迭代<E> iterable) → void
iterable 中的所有对象追加到此列表的末尾。
覆盖
any(bool test(E element)) bool
检查此可迭代中的任何元素是否满足 test
覆盖
asMap() Map<int, E>
此列表的不可修改 Map 视图。
覆盖
cast<R>() List<R>
将此列表视为 R 实例列表的视图。
覆盖
clear() → void
从此列表中删除所有对象;列表的长度变为零。
覆盖
contains(Object? element) bool
集合是否包含等于 element 的元素。
覆盖
elementAt(int index) → E
返回第 index 个元素。
覆盖
every(bool test(E element)) bool
检查此可迭代对象中的每个元素是否满足 test 条件。
覆盖
expand<T>(Iterable<T> f(E element)) Iterable<T>
将此 可迭代对象 的每个元素展开成零个或多个元素。
覆盖
fillRange(int start, int end, [E? fill]) → void
使用 fillValue 覆盖元素范围。
覆盖
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
覆盖
getRange(int start, int end) Iterable<E>
创建一个迭代特定元素范围的 Iterable
覆盖
indexOf(Object? element, [int start = 0]) int
此列表中 element 的第一个索引。
覆盖
indexWhere(bool test(E element), [int start = 0]) int
列表中满足提供的 test 的第一个索引。
覆盖
insert(int index, E element) → void
在此列表中将 element 插入到 index 位置。
覆盖
insertAll(int index, Iterable<E> iterable) → void
在此列表中将 iterable 的所有对象插入到 index 位置。
覆盖
join([String separator = ""]) String
将每个元素转换为 String 并连接这些字符串。
覆盖
lastIndexOf(Object? element, [int? start]) int
此列表中 element 的最后一个索引。
覆盖
lastIndexWhere(bool test(E element), [int? start]) int
列表中满足提供的 test 条件的最后一个索引。
覆盖
lastWhere(bool test(E element), {E orElse()?}) → E
满足给定谓词 test 的最后一个元素。
覆盖
map<T>(T f(E element)) Iterable<T>
通过 toElement 修改后的当前可迭代对象的元素。
覆盖
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时调用。
继承
reduce(E combine(E previousValue, E element)) → E
通过迭代使用提供的函数组合集合的元素来将集合缩减到单个值。
覆盖
remove(Object? element) bool
从列表中移除 value 的第一个出现。
覆盖
removeAt(int index) → E
从列表中移除位置 index 处的对象。
覆盖
removeLast() → E
移除并返回列表中的最后一个对象。
覆盖
removeRange(int start, int end) → void
从列表中移除一段元素。
覆盖
removeWhere(bool test(E element)) → void
从列表中移除所有满足 test 的对象。
覆盖
replaceRange(int start, int end, Iterable<E> newContents) → void
replacements的元素替换指定范围内的元素。
覆盖
retainWhere(bool test(E element)) → void
移除所有不满足test条件的对象。
覆盖
setAll(int index, Iterable<E> iterable) → void
iterable中的对象覆盖元素。
覆盖
setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) → void
iterable的一些元素写入列表的指定范围内。
覆盖
shuffle([Random? random]) → void
随机打乱列表中的元素。
覆盖
singleWhere(bool test(E element), {E orElse()?}) → E
满足test的单个元素。
覆盖
skip(int count) Iterable<E>
创建一个迭代器,提供除了前count个元素之外的所有元素。
覆盖
skipWhile(bool test(E element)) Iterable<E>
创建一个迭代器,在满足test条件时跳过前面的元素。
覆盖
sort([int compare(E a, E b)?]) → void
根据指定的 compare 函数对列表进行排序。
覆盖
sublist(int start, [int? end]) List<E>
返回一个新列表,包含从 startend 的元素。
覆盖
take(int count) Iterable<E>
创建一个惰性可迭代对象,包含可迭代对象的前 count 个元素。
覆盖
takeWhile(bool test(E element)) Iterable<E>
创建一个惰性可迭代对象,包含满足 test 的前导元素。
覆盖
toList({bool growable = true}) List<E>
创建一个包含此 可迭代对象 元素的 列表
覆盖
toSet() Set<E>
创建一个包含与此可迭代对象相同元素的 集合
覆盖
toString() String
此对象的字符串表示形式。
覆盖
where(bool test(E element)) Iterable<E>
创建一个新的惰性 可迭代对象,包含满足谓词 test 的所有元素。
覆盖
whereType<T>() Iterable<T>
创建一个新的惰性 可迭代对象,包含具有类型 T 的所有元素。
覆盖

操作符

operator +(List<E> other) List<E>
返回此列表与other的连接。
覆盖
操作符 ==(Object other) bool
相等操作符。
继承
操作符 [](int index) → E
列表中给定index处的对象。
继承
操作符 []=(int index, E value) → void
将列表中给定index处的值设置为value
继承

静态方法

listToString(List<Object?> list) String
List转换为String