Map集合
一般而言,一个map是一个key与value关联的对象,所有的key和value可以是任何类型的对象,ke不能重复,value可以有多个相同的,dart支持map的字面量创建和构造函数创建。
var gifts = {
// Key: Value
'first': 'partridge',
null: 'turtledoves',
2: 'golden rings'
};
var map = new Map();
map[1] = 'sixleg';
print(map[1]); // 'sixleg'
Map可以使用泛型,指定key跟value的类型
Map<int,String> map = {}; //key必须是int,value必须是String
map[0] = 'Tom'; //添加一个新的键值对到map中
print(map); // {0:'Tome'}
print(map[0]); // 'Tome' 通过key获取value的值
Map常用属性
- entries:返回map的entries对象 返回值: Iterable
- isEmpty:map集合是否为空 返回值:bool
- isNotEmpty:map集合是否不为空 返回值:bool
- keys:map集合的key的Iterable对象 返回值:Iterable
- length:map集合key/value的对数 返回值:int
- values:map集合值的Iterable对象 返回值:Iterable
- hashCode:map集合的哈希码 返回值:int
Map常用方法
- addAll(Map map) 往当前map集合添加一个map集合,如果key相同,则覆盖当前集合中key的值,返回值:void
var map = {1: "six", 2: "leg"};
var m = {3: "tom", 2: "张"};
map.addAll(m);
print(map); //{1: six, 2: 张, 3: tom}
- addEntries(Iterable<Map> iterable) 往当前map集合添加Map类型的Iterable对象,返回值:void
var map = {1: "six", 2: "leg"};
var m = {3: "tom", 2: "张"};
map.addEntries(m.entries);
print(map); //{1: six, 2: 张, 3: tom}
- clear() 清除当前map集合的所有键值对
- containsKey(Object key) 当前map对象是否包含键为key的键值对,返回值:bool
- containsValue(Object value) 当前map对象是否包含值为value的键值对,返回值:bool
- forEach(f(K key,V value){}) 遍历当前map对象
var map = {1: "six", 2: "leg"};
map.forEach((key, value) {
print("$key:$value");
});