List<E> class

具有长度的可索引对象集合.

该类的子类实现不同类型的列表. 最常见的列表类型是:

  • 定长列表. 尝试使用可以更改列表长度的操作时发生错误.

  • Growable list. Full implementation of the API defined in this class.

[]创建的默认可增长列表保留内部缓冲区,并在必要时增长该缓冲区. 这保证了一系列添加操作将在固定的固定时间内执行. 直接设置长度可能会花费与新长度成比例的时间,并且可能会更改内部容量,因此随后的添加操作将需要立即增加缓冲区容量. 其他列表实现可能具有不同的性能行为.

以下代码说明某些List实现仅支持API的子集.

List<int> fixedLengthList = new List(5);
fixedLengthList.length = 0;  // Error
fixedLengthList.add(499);    // Error
fixedLengthList[0] = 87;
List<int> growableList = [1, 2];
growableList.length = 0;
growableList.add(499);
growableList[0] = 87;

列表是可迭代的 . 迭代发生在索引顺序的值上. 更改值不会影响迭代,但是在迭代步骤之间更改有效索引(即更改列表的长度)会导致ConcurrentModificationError . 这意味着只有可增长的列表才能引发ConcurrentModificationError. 如果长度暂时改变并且在继续迭代之前已恢复,则迭代器不会检测到它.

通常,在执行列表操作时(例如在调用forEachsort的过程中),不允许修改列表的长度(添加或删除元素). 通过直接迭代列表或通过迭代由列表支持的Iterable更改列表的长度,可以中断迭代.

Implementers

Constructors

List([int length])
创建给定长度的列表. [...]
List.empty({bool growable: false})
创建一个新的空列表. [...]
List.filled(int length, E fill, {bool growable: false})
创建给定长度的列表,并在每个位置fill . [...]
List.from(Iterable elements, {bool growable: true})
创建一个包含所有elements的列表. [...]
List.generate(int length, E generator(int index), {bool growable: true})
生成值列表. [...]
List.of(Iterable<E> elements, {bool growable: true})
elements创建一个列表. [...]
List.unmodifiable(Iterable elements)
创建一个包含所有elements的不可修改列表. [...]

Properties

first ↔ E
返回第一个元素. [...]
读/写,继承getter
hashCode int
此对象的哈希码. [...]
只读,继承
isEmpty bool
如果此集合中没有元素,则返回true . [...]
只读,继承
isNotEmpty bool
如果此集合中至少有一个元素,则返回true. [...]
只读,继承
iterator Iterator<E>
返回一个新的Iterator ,它允许迭代此Iterable的元素. [...]
只读,继承
last ↔ E
返回最后一个元素. [...]
读/写,继承getter
length int
此列表中的对象数. [...]
读/写
reversed Iterable<E>
以相反的顺序返回此列表中的对象的Iterable .
只读
runtimeType Type
对象的运行时类型的表示形式.
只读,继承
single → E
检查此可迭代对象是否只有一个元素,然后返回该元素. [...]
只读,继承

Methods

add(E value) → void
value添加到此列表的末尾,将长度延长一. [...]
addAll(Iterable<E> iterable) → void
将所有iterable对象附加到此列表的末尾. [...]
any(bool test(E element)) bool
检查此可迭代的元素是否满足test . [...]
遗传
asMap() Map<int, E>
返回this的不可修改的Map视图. [...]
cast<R>() List<R>
返回此列表的视图作为R实例的列表. [...]
覆写
clear() → void
Removes all objects from this list; the length of the list becomes zero. [...]
contains(Object element) bool
如果集合包含等于element的元素,则返回true. [...]
遗传
elementAt(int index) → E
返回index个元素. [...]
遗传
every(bool test(E element)) bool
检查此可迭代的每个元素是否满足test . [...]
遗传
expand<T>(Iterable<T> f(E element)) Iterable<T>
Expands each element of this Iterable into zero or more elements. [...]
inherited
fillRange(int start, int end, [E fillValue]) → void
将范围start包含)到end不包括)的对象设置为给定的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>
返回此iterable和other的惰性组合. [...]
遗传
forEach(void f(E element)) → void
按迭代顺序将函数f应用于此集合的每个元素.
遗传
getRange(int start, int end) Iterable<E>
返回一个Iterable ,该Iterable对范围start包括)到end不包括)的对象进行迭代. [...]
indexOf(E element, [int start = 0]) int
返回此列表中element的第一个索引. [...]
indexWhere(bool test(E element), [int start = 0]) int
返回满足提供的test的列表中的第一个索引. [...]
insert(int index, E element) → void
将对象插入此列表中的位置index . [...]
insertAll(int index, Iterable<E> iterable) → void
在此列表的位置index处插入所有iterable对象. [...]
join([String separator = ""]) String
将每个元素转换为字符串并连接字符串. [...]
遗传
lastIndexOf(E 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 e)) Iterable<T>
返回带有元素的新的惰性Iterable ,该元素是通过按迭代顺序在此Iterable每个元素上调用f创建的. [...]
遗传
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时调用. [...]
遗传
reduce(E combine(E value, E element)) → E
通过使用提供的函数迭代组合集合的元素,将集合减少为单个值. [...]
遗传
remove(Object value) bool
从此列表中删除第一次出现的value . [...]
removeAt(int index) → E
从此列表中删除位置index处的对象. [...]
removeLast() → E
弹出并返回此列表中的最后一个对象. [...]
removeRange(int start, int end) → void
删除范围start包括)到end不包括)的对象. [...]
removeWhere(bool test(E element)) → void
从此列表中删除所有符合test对象. [...]
replaceRange(int start, int end, Iterable<E> replacement) → void
删除范围start包括)到end不包括)的对象,并将replacement内容插入到该位置. [...]
retainWhere(bool test(E element)) → void
从此列表中删除所有不满足test . [...]
setAll(int index, Iterable<E> iterable) → void
从此列表的位置index开始,使用iterable对象覆盖this对象. [...]
setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) → void
复制iterable的对象,先跳过skipCount对象,将其复制到列表的start (包括)到end (不包括)范围内. [...]
shuffle([Random random]) → void
随机调整此列表的元素.
singleWhere(bool test(E element), {E orElse()}) → E
返回满足test的单个元素. [...]
遗传
skip(int count) Iterable<E>
Returns an Iterable that provides all but the first count elements. 返回提供除第一个count元素以外的所有元素的Iterable . [...] [...]
inherited 遗传
skipWhile(bool test(E value)) Iterable<E>
返回一个Iterable ,它在满足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 value)) Iterable<E>
返回满足test的前导元素的惰性迭代. [...]
遗传
toList({bool growable: true}) List<E>
创建一个包含此Iterable元素的列表 . [...]
遗传
toSet() Set<E>
创建一个Set ,该Set包含与此Iterable相同的元素. [...]
遗传
toString() String
返回此对象的字符串表示形式.
遗传
where(bool test(E element)) Iterable<E>
返回一个新的lazy Iterable,它具有所有满足谓词test元素. [...]
遗传
whereType<T>() Iterable<T>
返回具有类型T所有元素的新的lazy Iterable . [...]
遗传

Operators

operator +(List<E> other) List<E>
返回此列表和other的串联. [...]
operator ==(Object other) bool
此列表是否等于other列表. [...]
覆写
operator [](int index) → E
返回列表中给定index处的对象,如果index超出范围,则抛出RangeError .
operator []=(int index, E value) → void
给定在设定值index在列表中value或将引发的RangeError如果index是出界.

Static Methods

castFrom<S, T>(List<S> source) List<T>
sourceList<T> . [...]
覆写
copyRange<T>(List<T> target, int at, List<T> source, [int start, int end]) → void
将一个列表的范围复制到另一列表. [...]
writeIterable<T>(List<T> target, int at, Iterable<T> source) → void
将可迭代的元素写入列表. [...]