Flutter Map 常用操作方法概述
Flutter 中的 Map 是一种键值对的集合,可以存储任意类型的数据,并且可以通过键来访问和操作对应的值。
1. 创建 Map:
可以使用 {}
或者 Map.from()
方法来创建 Map。例如:
// 使用 {} 创建 Map
var myMap = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
};
// 使用 Map.from() 创建 Map
var myMap = Map.from([
['key1', 'value1'],
['key2', 'value2'],
['key3', 'value3'],
]);
2. 添加元素:
可以使用 map[key] = value
或者 map.put(key, value)
方法来添加元素。例如:
myMap['key4'] = 'value4';
myMap.put('key5', 'value5');
3. 获取元素:
可以使用 map[key]
方法来获取元素。如果键不存在,会返回 null。例如:
var value = myMap['key1']; // value = 'value1'
4. 删除元素:
可以使用 map.remove(key)
或者 map.clear()
方法来删除元素。例如:
myMap.remove('key2'); // 删除键为 'key2' 的元素
myMap.clear(); // 清空所有元素
5. 遍历元素:
使用键来获取值:通过使用键作为索引,可以获取到与之对应的值。例如,map['key']可以获取到键为'key'的元素的值。
可以使用 for..in
循环或者 map.keys
和 map.values
方法来遍历元素。
5.1 使用keys方法获取所有的键:
map.keys可以获取到Map中所有的键,返回的也是一个Iterable对象
for (var key in myMap.keys) {
print('${key}: ${myMap[key]}');
}
或者:
for (var key in myMap.keys) {
print('${key}: ${myMap.values.firstWhere((value) => value == myMap[key])}');
// 使用 values 遍历找到对应的值并输出,可能会效率低下,不建议频繁使用此操作。
}
或者
void main() {
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
for (var entry in map.entries) {
print('Key: ${entry.key}, Value: ${entry.value}');
}
}
5.2 Map.Entry
- firstEntry是Map类的一个方法,用于获取Map中的第一个元素。返回的是一个MapEntry对象,可以通过entry.key和entry.value来获取键和值。
var entry = map.firstEntry; // 获取第一个元素
print('Key: ${entry.key}, Value: ${entry.value}');
lastEntry
方法返回Map中的最后一个元素
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
var lastEntry = map.lastEntry;
print('Key: ${lastEntry.key}, Value: ${lastEntry.value}');
输出结果为:Key: key3, Value: value3
singleEntry
方法返回Map中的唯一个元素,如果Map中只有一个元素,则返回该元素;如果Map中没有元素或者有多个元素,则返回null。
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
var singleEntry = map.singleEntry;
if (singleEntry != null) {
print('Key: ${singleEntry.key}, Value: ${singleEntry.value}');
} else {
print('Map is empty or contains multiple entries.');
}
输出结果为:Key: key3, Value: value3
如果Map中没有元素或者有多个元素,使用singleEntry
方法会返回null,需要进行空判断或者异常处理。
5.3 forEach方法对Map中的每个键值对进行遍历
void main() {
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
map.forEach((key, value) {
print('Key: $key, Value: $value');
});
}
5.4 使用for循环遍历Map中的键值对
void main() {
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
for (var entry in map.entries) {
print('Key: ${entry.key}, Value: ${entry.value}');
}
}
5.5 使用entries方法遍历Map中的所有键值对
void main() {
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
for (var entry in map.entries) {
print('Key: ${entry.key}, Value: ${entry.value}');
}
}
转载自:https://juejin.cn/post/7297225106203607081