Map 是 Dart 中非常重要的数据结构之一,它用于存储键值对。了解如何操作 Map 可以帮助你更高效地处理数据。
添加和修改元素
添加元素
可以使用 [] 操作符或 putIfAbsent() 方法来添加新元素到 Map 中。
void main() {
var myMap = <String, int>{};
myMap['apple'] = 5;
print(myMap); // 输出: {apple: 5}
myMap.putIfAbsent('banana', () => 3);
print(myMap); // 输出: {apple: 5, banana: 3}
}修改元素
可以使用 [] 操作符直接修改 Map 中的值。
void main() {
var myMap = {'apple': 5, 'banana': 3};
myMap['apple'] = 7;
print(myMap); // 输出: {apple: 7, banana: 3}
}删除元素
删除单个元素
可以使用 remove() 方法来删除 Map 中的指定元素。
void main() {
var myMap = {'apple': 5, 'banana': 3};
myMap.remove('apple');
print(myMap); // 输出: {banana: 3}
}删除所有元素
可以使用 clear() 方法来删除 Map 中的所有元素。
void main() {
var myMap = {'apple': 5, 'banana': 3};
myMap.clear();
print(myMap); // 输出: {}
}查询元素
检查是否存在特定键
可以使用 containsKey() 方法来检查 Map 中是否存在指定的键。
void main() {
var myMap = {'apple': 5, 'banana': 3};
bool hasApple = myMap.containsKey('apple');
print(hasApple); // 输出: true
}检查是否存在特定值
可以使用 containsValue() 方法来检查 Map 中是否存在指定的值。
void main() {
var myMap = {'apple': 5, 'banana': 3};
bool hasThree = myMap.containsValue(3);
print(hasThree); // 输出: true
}获取指定键的值
可以使用 [] 操作符来获取 Map 中指定键的值。
void main() {
var myMap = {'apple': 5, 'banana': 3};
int appleCount = myMap['apple'];
print(appleCount); // 输出: 5
}获取 Map 的长度
可以使用 length 属性来获取 Map 中元素的数量。
void main() {
var myMap = {'apple': 5, 'banana': 3};
int length = myMap.length;
print(length); // 输出: 2
}遍历 Map
使用 for-in 循环遍历
可以使用 for-in 循环来遍历 Map 中的所有键值对。
// www.javascriptcn.com code example
void main() {
var myMap = {'apple': 5, 'banana': 3};
for (var entry in myMap.entries) {
print('${entry.key}: ${entry.value}');
}
// 输出:
// apple: 5
// banana: 3
}使用 keys 和 values 属性遍历
也可以分别通过 keys 和 values 属性来遍历 Map 中的键和值。
// www.javascriptcn.com code example
void main() {
var myMap = {'apple': 5, 'banana': 3};
for (var key in myMap.keys) {
print(key);
}
// 输出:
// apple
// banana
for (var value in myMap.values) {
print(value);
}
// 输出:
// 5
// 3
}其他常用方法
获取 Map 的副本
可以使用 Map.from() 或 Map.of() 来创建 Map 的副本。
void main() {
var originalMap = {'apple': 5, 'banana': 3};
var copiedMap = Map.from(originalMap);
print(copiedMap); // 输出: {apple: 5, banana: 3}
}合并两个 Map
可以使用 addAll() 方法来合并两个 Map。
void main() {
var map1 = {'apple': 5, 'banana': 3};
var map2 = {'orange': 4};
map1.addAll(map2);
print(map1); // 输出: {apple: 5, banana: 3, orange: 4}
}以上就是 Dart 中 Map 常用的方法和属性。熟练掌握这些操作将大大提高你在实际项目中的效率。