一、List(列表)
-
定义与初始化
-
可以使用方括号直接初始化列表:
dartvar list1 = [1, 2, 3]; // 类型自动推断 List<int> list2 = [4, 5, 6]; // 明确指定元素类型为int
-
-
常用属性
-
length
- 获取列表中元素的数量。
dartvar fruits = ['apple', 'banana', 'cherry']; print(fruits.length); // 输出3
-
reversed
- 返回一个反向迭代的视图。
dartvar reversedFruits = fruits.reversed; reversedFruits.forEach((fruit) => print(fruit));
-
isEmpty和isNotEmpty
- 判断列表是否为空或不为空。
dartvar emptyList = []; print(emptyList.isEmpty); // 输出true print([1, 2].isNotEmpty); // 输出true
-
-
常用方法
-
add
- 在列表末尾添加元素。
dartvar numbers = [1, 2]; numbers.add(3); print(numbers); // 输出[1, 2, 3]
-
addAll
- 将另一个可迭代对象的元素添加到列表末尾。
dartvar listA = [1, 2]; var listB = [3, 4]; listA.addAll(listB); print(listA); // 输出[1, 2, 3, 4]
-
indexOf
- 查找元素在列表中的索引,找不到返回 - 1。
dartvar fruits = ['apple', 'banana', 'cherry']; print(fruits.indexOf('banana')); // 输出1
-
remove和removeAt
remove
根据值删除元素,removeAt
根据索引删除元素。
dartvar fruits = ['apple', 'banana', 'cherry']; fruits.remove('banana'); print(fruits); // 输出['apple', 'cherry'] fruits.removeAt(0); print(fruits); // 输出['cherry']
-
fillRange
- 修改列表中指定范围的元素。
dartvar list = [1, 2, 3, 4, 5]; list.fillRange(1, 3, 9); print(list); // 输出[1, 9, 9, 4, 5]
-
insert和insertAll
insert
在指定位置插入一个元素,insertAll
在指定位置插入一个列表。
dartvar fruits = ['apple', 'banana']; fruits.insert(1, 'avocado'); print(fruits); // 输出['apple', 'avocado', 'banana'] var newFruits = ['guava', 'honeydew']; fruits.insertAll(2, newFruits); print(fruits); // 输出['apple', 'avocado', 'guava', 'honeydew', 'banana']
-
toList()
- 将其他类型转换为List。
dartvar set = {'a', 'b', 'c'}; var listFromSet = set.toList(); print(listFromSet); // 输出['a', 'b', 'c']
-
join()
- 将列表元素连接成字符串。
dartvar words = ['Hello', 'World']; print(words.join(' ')); // 输出'Hello World'
-
split()
- 通常用于字符串操作,将字符串分割成列表。
dartvar text = 'a,b,c'; var parts = text.split(','); print(parts); // 输出['a', 'b', 'c']
-
forEach
- 对列表每个元素执行操作。
dartvar numbers = [1, 2, 3]; numbers.forEach((num) => print(num));
-
map
- 对列表元素应用函数并返回新的可迭代对象。
dartvar numbers = [1, 2, 3]; var squared = numbers.map((num) => num * num); print(squared); // 输出(1, 4, 9)
-
where
- 筛选满足条件的元素。
dartvar numbers = [1, 2, 3]; var evenNumbers = numbers.where((num) => num % 2 == 0); print(evenNumbers); // 输出(2)
-
any和every
any
判断是否存在满足条件的元素,every
判断所有元素是否满足条件。
dartvar numbers = [1, 2, 3]; print(numbers.any((num) => num % 2 == 0)); // 输出true print(numbers.every((num) => num % 2 == 0)); // 输出false
-
二、Set(集合)
-
定义与初始化
-
可以使用大括号直接初始化集合:
dartvar set1 = {'a', 'b', 'c'}; // 类型自动推断 Set<int> set2 = {1, 2, 3}; // 明确指定元素类型为int
-
-
特性
-
集合元素具有唯一性。
dartvar set = {1, 2, 2, 3}; print(set); // 输出{1, 2, 3}
-
-
常用操作
-
添加元素
- 使用
add
方法。
dartvar fruitSet = {'apple', 'banana'}; fruitSet.add('cherry'); print(fruitSet); // 输出{'apple', 'banana', 'cherry'}
- 使用
-
删除元素
- 使用
remove
方法。
dartvar fruitSet = {'apple', 'banana'}; fruitSet.remove('apple'); print(fruitSet); // 输出{'banana'}
- 使用
-
检查元素是否存在
- 使用
contains
方法。
dartvar fruitSet = {'apple', 'banana'}; print(fruitSet.contains('banana')); // 输出true
- 使用
-
集合运算
-
并集
dartSet<int> setA = {1, 2, 3}; Set<int> setB = {3, 4, 5}; Set<int> unionSet = setA.union(setB); print(unionSet); // 输出{1, 2, 3, 4, 5}
-
交集
dartSet<int> setA = {1, 2, 3}; Set<int> setB = {3, 4, 5}; Set<int> intersectionSet = setA.intersection(setB); print(intersectionSet); // 输出{3}
-
差集
dartSet<int> setA = {1, 2, 3}; Set<int> setB = {3, 4, 5}; Set<int> differenceSetA = setA.difference(setB); print(differenceSetA); // 输出{1, 2}
-
-
三、Map(映射)
-
定义与初始化
-
可以使用大括号初始化Map:
dartvar map1 = {'key1': 'value1', 'key2': 'value2'}; // 类型自动推断 Map<String, int> map2 = {'a': 1, 'b': 2}; // 明确指定键和值的类型
-
-
常用操作
-
获取值
- 通过键获取值。
dartvar ages = {'Alice': 20, 'Bob': 22}; print(ages['Alice']); // 输出20
-
添加和修改键值对
- 添加新键值对或修改现有键值对。
dartvar ages = {'Alice': 20, 'Bob': 22}; ages['Charlie'] = 25; // 添加 ages['Alice'] = 21; // 修改 print(ages);
-
删除键值对
- 使用
remove
方法。
dartvar ages = {'Alice': 20, 'Bob': 22}; ages.remove('Bob'); print(ages);
- 使用
-
检查键是否存在
- 使用
containsKey
方法。
dartvar ages = {'Alice': 20, 'Bob': 22}; print(ages.containsKey('Alice')); // 输出true
- 使用
-
遍历Map
- 使用
forEach
方法。
dartvar ages = {'Alice': 20, 'Bob': 22}; ages.forEach((key, value) => print('$key: $value'));
- 使用
-