ListBase<E>抽象 混入

列表的抽象实现。

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

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

注意:由于向后兼容性原因,存在一个默认的add实现,它只适用于支持空值的元素类型的列表。对于非空值类型的列表,必须实现add方法。

注意:仅将四个读取/写入操作length[]正向委托到普通的可增长List(如使用[]字面量创建的)会对ListBaseaddaddAll操作的性能产生严重影响。这些操作通过在每次添加操作中将列表长度增加一个单位来实现,而多次增加可增长列表的长度并不高效。为了避免这种情况,请覆盖'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
iterator Iterator<E>
一个新的允许遍历此Iterable元素Iterator
no setteroverride
last ↔ E
最后一个元素。
getter/setter pairoverride
length int
此列表中的对象数量。
getter/setter pairinherited
Iterable<E>
此列表中对象的反序可迭代。
no setteroverride
runtimeType Type
对象的运行时类型表示。
no setterinherited
single → E
检查此迭代器是否只有一个元素,并返回该元素。
no setteroverride

方法

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

运算符

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

静态方法

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