Map

创建字典

var testMap = Map();
var testMap2 = {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e'};
// 长度属性
print(testMap.length); // 0
// 获取值
print(testMap["a"]); // null
print(testMap2["a"]); // a
print(testMap2.keys); // {'a', 'b', 'c'}
print(testMap2.values); // {'a', 'b', 'c'}

使用泛型

var intMap = Map<int, String>();
// map新增元素
intMap[1] = "Num 1";
intMap[2] = "Num 2";
intMap['a'] = "Char a:"; // 错误,类型不正确。
// 删除元素
intMap.remove(2);
// 是否存在key
print(intMap.containsKey(1)); // true

常用属性及方法

Map 继承了 Iterable 的属性及方法, 重写了部分属性及方法

  • keys → Iterable<K> 返回所有 key
  • values → Iterable<V> 返回所有 value
  • entries → Iterable<MapEntry<K, V>>

添加

  • addAll(Map<K, V> other) → void
  • addEntries(Iterable<MapEntry<K, V>> newEntries) → void
Map<dynamic, dynamic> testMap = {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e'};
testMap.addAll({1: 1, 2: 2});
testMap.addEntries({new MapEntry(3, 3)});

移除

  • remove(Object key) → V
Map testMap = {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e'};
testMap.remove('a');

其他

  • clear() → void 清空 Map
  • containsKey(Object key) → bool 是否包括 key
  • containsValue(Object value) → bool 是否包括 value

高阶函数

map

  • map<K2, V2>(MapEntry<K2, V2> f(K key, V value)) → Map<K2, V2>
Map testMap = {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e'};
var newMap = testMap.map((k, v) => new MapEntry(k + 'k', v + 'v')); // {ak: av, bk: bv, ck: cv, dk: dv, ek: ev}

参考资料

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress