在本章中,我们将讨论如何对列表执行一些基本操作方法。
在列表中插入元素
可变列表可以在运行时动态增长。 List.add()方法将指定的值附加到List的末尾并返回修改后的List对象。
下面的代码说明了这个情况:
void main() { List l = [1,2,3]; l.add(12); print(l); }
上面的代码将会输出以下结果:
[1, 2, 3, 12]
List.addAll( )方法接受以逗号分隔的多个值,并将这些值附加到List。
void main() { List l = [1,2,3]; l.addAll([12,13]); print(l); }
上面的代码将会输出以下结果:
[1, 2, 3, 12, 13]
Dart还支持在List中的特定位置添加元素。 insert( )函数接受一个值并将其插入指定的索引。 类似地,insertAll( )函数从指定的索引开始插入给定的值列表。
insert和insertAll函数的用法如下所示:
List.insert(index,value) List.insertAll(index, iterable_list_of _values)
以下示例分别说明了insert( )和insertAll( )函数的用法。
Example: List.insert( )
void main() { List l = [1,2,3]; l.insert(0,4); print(l); }
上面的代码将会输出以下结果:
[4, 1, 2, 3]
Example : List.insertAll( )
void main() { List l = [1,2,3]; l.insertAll(0,[120,130]); print(l); }
上面的代码将会输出以下结果:
[120, 130, 1, 2, 3]
更新列表
更新索引
Dart允许修改List中项目的值。 换句话说,可以重写列表项的值。
以下示例阐释了这种情况:
void main() { List l = [1, 2, 3,]; 1[0] = 123; print (1); }
上面的示例使用索引0更新List项的值。代码的输出结果是:
[123, 2, 3]
使用List.replaceRange()方法
dart:core库中的List类提供了replaceRange()函数来修改List项。 此函数替换指定范围内元素的值。
使用List.replaceRange()函数的语法如下所示:
List.replaceRange(int start_index,int end_index,Iterable <items>)
- Start_index – 表示要开始替换的索引位置的整数。
- End_index – 表示要停止替换的索引位置的整数。
- <items> – 表示更新值的可迭代对象。
以下示例说明了相同的内容:
void main() { List l = [1, 2, 3,4,5,6,7,8,9]; print('替换之前的列表为${l}'); l.replaceRange(0,3,[11,23,24]); print('替换索引0到3后的列表为 ${l}'); }
上面的代码将会输出以下结果:
替换之前的列表为 [1, 2, 3, 4, 5, 6, 7, 8, 9] 替换索引0到3后的列表为 [11, 23, 24, 4, 5, 6, 7, 8, 9]
删除列表项
dart:core库中List类支持的以下函数可用于删除List中的项目。
List.remove()
List.remove()函数删除列表中第一次出现的指定项。 如果从列表中删除指定的值,则此函数返回true。
用法
List.remove(Object value)
- value – 表示应从列表中删除的项的值。
下面的例子阐释了如何使用这个方法。
void main() { List l = [1, 2, 3,4,5,6,7,8,9]; print('删除之前的列表为 ${l}'); bool res = l.remove(1); print('删除之后的列表为 ${l}'); }
上面的代码将会输出以下结果:
删除之前的列表为 [1, 2, 3, 4, 5, 6, 7, 8, 9] 删除之后的列表为 [2, 3, 4, 5, 6, 7, 8, 9]
List.removeAt( )
List.removeAt 方法删除指定索引处的值并返回它。
用法
List.removeAt(int index)
- index – 表示应从列表中删除的元素的索引。
下面的代码示例解释了这种用法。
void main() { List l = [1, 2, 3,4,5,6,7,8,9]; print('删除之前列表为 ${l}'); dynamic res = l.removeAt(1); print('元素值为 ${res}'); print('删除之后列表为 ${l}'); }
上面的代码将会输出下面的结果:
删除之前列表为 [1, 2, 3, 4, 5, 6, 7, 8, 9] 元素值为 2 删除之后列表为 [1, 3, 4, 5, 6, 7, 8, 9]
List.removeLast( )
List.removeLast( )方法弹出并返回List中的最后一项。
其语法如下所示:
List.removeLast()
下面的代码示例解释了这种用法。
void main() { List l = [1, 2, 3,4,5,6,7,8,9]; print('删除之前列表为${l}'); dynamic res = l.removeLast(); print('元素值弹出 ${res}'); print('删除之后列表值为 ${l}'); }
上面的代码将会输出下面的结果:
删除之前列表为 [1, 2, 3, 4, 5, 6, 7, 8, 9] 元素值弹出 9 删除之后列表值为 [1, 2, 3, 4, 5, 6, 7, 8]
List.removeRange()
List.removeRange( )方法删除指定范围内的项目。 其语法如下所示:
List.removeRange(int start, int end)
- Start – 表示删除项目的起始位置。
- End – 表示列表中停止删除项目的位置。
下面的代码示例解释了这种用法。
void main() { List l = [1, 2, 3,4,5,6,7,8,9]; print('删除列表元素之前列表的值为 ${l}'); l.removeRange(0,3); print('删除列表0-3之间的元素后列表的值为${l}'); }
上面的代码将会输出下面的结果:
删除列表元素之前列表的值为 [1, 2, 3, 4, 5, 6, 7, 8, 9] 删除列表0-3之间的元素后列表的值为 [4, 5, 6, 7, 8, 9]