# 集合 Map

本文作者:阳九五 (opens new window)

本站地址:https://blog.56321654.xyz (opens new window)

key value 形式的集合,也叫键值对。
key 是唯一的

# 声明

# 松散

Map Map1 = {};
Map1['web'] = 'https://github.com/CN-YoungYang';
Map1['type'] = 'Github';

Map Map2 = Map();
Map2['web'] = 'https://gitee.com/SoYang95';
Map2['type'] = 'Gitee';

print(Map1);
print(Map2);

{web: https://github.com/CN-YoungYang, type: Github}
{web: https://gitee.com/SoYang95, type: Gitee}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 强类型

泛型限定key和value的类型, 输入不符合的类型则会报错

Map Map1 = <String, String>{};
Map1['web'] = 'https://github.com/CN-YoungYang';
Map1['type'] = 'Github';

Map Map2 = Map<String, String>();
Map2['web'] = 'https://gitee.com/SoYang95';
Map2['type'] = 'Gitee';

print(Map1);
print(Map2);

{web: https://github.com/CN-YoungYang, type: Github}
{web: https://gitee.com/SoYang95, type: Gitee}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 常用属性

名称 说明
isEmpty 是否为空
isNotEmpty 是否不为空
keys key集合
values value集合
length 长度
entries k,v集合

keys,values,entries 返回的都是Iterable类型

Map a = {'name': 'YoungYang', 'web': 'blog.59young.com'};

print(a.isEmpty);
print(a.isNotEmpty);
print(a.keys);
print(a.values);
print(a.length);
print(a.entries);

false
true
(name, web)
(YoungYang, blog.59young.com)
2
(MapEntry(name: YoungYang), MapEntry(web: blog.59young.com))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 常用方法

名称 说明
addAll 新增
addEntries 接入 MapEntry
containsKey 查询是否存在 key
containsValue 查询是否存在 value
clear 清空
remove key 删除
removeWhere 按条件删除
update 更新数据
updateAll 批量更新数据

# addAll 新增

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};

m.addAll({'Age': 18, 'Sex': '男'});

{name: YoungYang, web: blog.59young.com, Age: 18, Sex:}
1
2
3
4
5

# addEntries 接入 MapEntry

Map m1 = {'name': 'YoungYang', 'web': 'blog.59young.com'};
Map m2 = {'Age': 18, 'Sex': '男'};
m1.addEntries(m2.entries);

print(m1);

{name: YoungYang, web: blog.59young.com, Age: 18, Sex:}
1
2
3
4
5
6
7

# containsKey 查询是否存在 key

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};

print( m.containsKey('name') );

true
1
2
3
4
5

# containsValue 查询是否存在 value

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};

print( m.containsValue('name') );

true
1
2
3
4
5

# clear 清空

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m.clear();

print( m );

{}
1
2
3
4
5
6

# removekey 删除

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m.remove('web');

print( m );

{name: YoungYang}
1
2
3
4
5
6

# removeWhere 按条件删除

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m.removeWhere(((key, value) => value == 'blog.59young.com'));

print( m );

{name: YoungYang}
1
2
3
4
5
6

# update 更新数据

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m.update('name',((value) => '阳九五'));

print( m );

{name: 阳九五, web: blog.59young.com}
1
2
3
4
5
6

# updateAll 批量更新数据

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m.updateAll((key, value) => value.toUpperCase());

print( m );

{name: YOUNGYANG, web: BLOG.59YOUNG.COM}
1
2
3
4
5
6

# 操作符

名称 说明
= 赋值
[] 取key值
[]= 赋key值

# = 赋值

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m = {'description': 'Hello Dart'};

print( m );

{description: Hello Dart}
1
2
3
4
5
6

# [] 取key值

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};

print( m['name'] );

YoungYang
1
2
3
4
5

# []= 服赋key值

Map m = {'name': 'YoungYang', 'web': 'blog.59young.com'};
m['name'] = '阳九五';

print( m );

{name: 阳九五, web: blog.59young.com}
1
2
3
4
5
6
最近更新: 8/6/2025, 2:39:35 PM