Flutter List 常用的函数与使用场景

239 阅读5分钟

1. List.add()

  • 功能: 向 List 中添加一个元素。
  • 使用场景: 当需要在 List 的末尾添加一个新的元素时,使用 add

示例:

List<String> fruits = ['apple', 'banana'];
fruits.add('orange');
print(fruits); // 输出: [apple, banana, orange]

2. List.addAll()

  • 功能: 将另一个 Iterable 对象(例如 List)的所有元素添加到当前 List 中。
  • 使用场景: 如果有一个集合,想要将所有元素添加到现有的 List 中,可以使用 addAll

示例:

List<String> fruits = ['apple', 'banana'];
List<String> moreFruits = ['orange', 'grape'];

fruits.addAll(moreFruits);
print(fruits); // 输出: [apple, banana, orange, grape]

3. List.remove()

  • 功能: 移除 List 中的第一个匹配的元素。
  • 使用场景: 当想从 List 中删除某个元素时,使用 remove

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.remove('banana');
print(fruits); // 输出: [apple, orange]

4. List.removeAt()

  • 功能: 根据索引移除 List 中的元素。
  • 使用场景: 如果需要根据索引删除 List 中的元素,可以使用 removeAt

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.removeAt(1);
print(fruits); // 输出: [apple, orange]

5. List.removeLast()

  • 功能: 移除 List 中的最后一个元素。
  • 使用场景: 如果需要删除 List 中的最后一个元素,可以使用 removeLast

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.removeLast();
print(fruits); // 输出: [apple, banana]

6. List.insert()

  • 功能: 在指定索引位置插入一个元素。
  • 使用场景: 当需要在 List 中某个位置插入一个新元素时,可以使用 insert

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.insert(1, 'grape');
print(fruits); // 输出: [apple, grape, banana, orange]

7. List.insertAll()

  • 功能: 在指定位置插入一个 Iterable 中的所有元素。
  • 使用场景: 当需要在 List 中的某个位置插入一批元素时,使用 insertAll

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.insertAll(1, ['grape', 'kiwi']);
print(fruits); // 输出: [apple, grape, kiwi, banana, orange]

8. List.contains()

  • 功能: 判断 List 中是否包含指定的元素。
  • 使用场景: 如果需要检查 List 中是否包含某个元素,可以使用 contains

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
print(fruits.contains('banana')); // 输出: true
print(fruits.contains('grape'));  // 输出: false

9. List.indexOf()

  • 功能: 返回指定元素在 List 中的索引。如果元素不存在,则返回 -1
  • 使用场景: 如果需要查找某个元素的索引,可以使用 indexOf

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
print(fruits.indexOf('banana')); // 输出: 1
print(fruits.indexOf('grape'));  // 输出: -1

10. List.sort()

  • 功能: 对 List 进行排序。
  • 使用场景: 如果需要对 List 进行排序(默认按升序),可以使用 sort

示例:

List<int> numbers = [5, 3, 8, 1];
numbers.sort();
print(numbers); // 输出: [1, 3, 5, 8]

11. List.reversed

  • 功能: 返回一个反转后的 List
  • 使用场景: 如果想获取一个反转后的列表,可以使用 reversed

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
print(fruits.reversed.toList()); // 输出: [orange, banana, apple]

12. List.shuffle()

  • 功能: 随机打乱 List 中的元素顺序。
  • 使用场景: 如果想随机打乱 List 中元素的顺序,可以使用 shuffle

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.shuffle();
print(fruits); // 输出: 打乱顺序后的列表,如 [orange, apple, banana]

13. List.map()

  • 功能: 将 List 中的每个元素映射为新的元素,返回一个新的 Iterable
  • 使用场景: 当需要对 List 中的每个元素执行某种操作,并生成一个新的列表时,使用 map

示例:

List<int> numbers = [1, 2, 3];
List<int> squared = numbers.map((e) => e * e).toList();
print(squared); // 输出: [1, 4, 9]

14. List.where()

  • 功能: 返回一个包含满足条件的元素的 Iterable
  • 使用场景: 当需要从 List 中筛选出符合某个条件的元素时,可以使用 where

示例:

List<int> numbers = [1, 2, 3, 4, 5];
var evenNumbers = numbers.where((num) => num.isEven).toList();
print(evenNumbers); // 输出: [2, 4]

15. List.fold()

  • 功能: 将 List 中的元素累加或合并成一个单一的值。
  • 使用场景: 当需要从 List 中的元素计算出一个累积值(如求和)时,使用 fold

示例:

List<int> numbers = [1, 2, 3, 4];
int sum = numbers.fold(0, (previousValue, element) => previousValue + element);
print(sum); // 输出: 10

16. List.reduce()

  • 功能: 对 List 中的所有元素进行累积操作,返回一个最终结果。
  • 使用场景: 当希望通过一个操作合并 List 中的元素时(如求最大值、最小值等),使用 reduce

示例:

List<int> numbers = [1, 2, 3, 4];
int maxNumber = numbers.reduce((value, element) => value > element ? value : element);
print(maxNumber); // 输出: 4

17. List.asMap()

  • 功能: 将 List 转换为 Map,其中键为元素的索引,值为元素。
  • 使用场景: 当需要将 List 的元素和它们的索引映射为一个 Map 时,使用 asMap()

示例:

List<String> fruits = ['apple', 'banana', 'orange'];
Map<int, String> fruitMap = fruits.asMap();
fruitMap.forEach((index, value) {
  print('Index: $index, Value: $value');
});

输出:

Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: orange

18. List.removeWhere()

  • 功能: 移除符合条件的所有元素。
  • 使用场景: 当需要根据条件从 List 中删除元素时,使用 removeWhere

示例:

List<int> numbers = [1, 2, 3, 4, 5];
numbers.removeWhere((element) => element % 2 == 0);
print(numbers); // 输出: [1, 3, 5]

总结:

  • add() : 向 List 添加一个元素。
  • addAll() : 向 List 添加另一个 Iterable 的所有元素。
  • remove() : 移除指定的元素。
  • removeAt() : 根据索引移除指定的元素。
  • insert() : 在指定位置插入元素。
  • insertAll() : 在指定位置插入多个元素。
  • contains() : 判断 List 是否包含指定的元素。
  • indexOf() : 获取元素的索引。
  • sort() : 对 List 进行排序。
  • reversed: 获取反转后的 List
  • shuffle() : 随机打乱 List 元素。
  • map() : 将 List 中的每个元素映射为新的元素。
  • where() : 筛选出符合条件的元素。
  • fold() : 将 List 中的元素累积为一个结果。
  • reduce() : 对 List 中的所有元素进行累积操作。
  • asMap() : 将 List 转换为 Map
  • removeWhere() : 根据条件移除元素。

这些方法和属性为在使用 List 时提供了丰富的操作,能够更灵活地管理和处理列表数据。