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 中的所有键值对。
-- -------------------- ---- ------- ---- ------ - --- ----- - --------- -- --------- --- --- ---- ----- -- -------------- - -------------------- ----------------- - -- --- -- ------ - -- ------- - -
使用 keys 和 values 属性遍历
也可以分别通过 keys
和 values
属性来遍历 Map 中的键和值。
-- -------------------- ---- ------- ---- ------ - --- ----- - --------- -- --------- --- --- ---- --- -- ----------- - ----------- - -- --- -- ----- -- ------ --- ---- ----- -- ------------- - ------------- - -- --- -- - -- - -
其他常用方法
获取 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 常用的方法和属性。熟练掌握这些操作将大大提高你在实际项目中的效率。