列表的抽象实现。
ListBase
可以作为实现List
接口的基类。
此类使用length
和operator[]
以及成员来实现所有的读取操作。它使用这些以及add
、length=
和operator[]
来执行写入操作。使用此基类的类应该实现这些五个操作。
注意:由于向后兼容性原因,存在一个默认的add
实现,它只适用于支持空值的元素类型的列表。对于非空值类型的列表,必须实现add
方法。
注意:仅将四个读取/写入操作length
和[]
正向委托到普通的可增长List(如使用[]
字面量创建的)会对ListBase
的add
和addAll
操作的性能产生严重影响。这些操作通过在每次添加操作中将列表长度增加一个单位来实现,而多次增加可增长列表的长度并不高效。为了避免这种情况,请覆盖'add'和'addAll'以直接将这些操作委托到可增长列表,或者如果可能,使用从"package:collection/collection.dart"中的DelegatingList
代替ListMixin
。
- 实现类型
-
- List<
E>
- List<
- 实现者
- 可用的扩展
构造函数
- 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> - 返回一个新列表,包含从
start
到end
之间的元素。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
。继承