设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间20 现在时间20 缓存数据 和聪明人交流,和靠谱的人恋爱,和进取的人共事,和幽默的人随行。晚安!

和聪明人交流,和靠谱的人恋爱,和进取的人共事,和幽默的人随行。晚安!

查看: 1223|回复: 3

Flutter Map常用操作方法总结

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:228
  • 打卡月天数:0
  • 打卡总奖励:3371
  • 最近打卡:2025-11-08 03:51:34
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
472
主题
432
精华
0
金钱
4756
积分
967
注册时间
2023-1-7
最后登录
2025-11-8

发表于 2024-2-25 11:46:20 | 显示全部楼层 |阅读模式
目录


  • 1. 创建 Map
  • 2. 添加元素
  • 3. 获取元素
  • 4. 删除元素
  • 5. 遍历元素

    • 5.1 使用keys方法获取所有的键
    • 5.2 Map.Entry
    • 5.3 forEach方法对Map中的每个键值对进行遍历
    • 5.4 使用for循环遍历Map中的键值对
    • 5.5 使用entries方法遍历Map中的所有键值对

Flutter 中的 Map 是一种键值对的集合,可以存储任意类型的数据,并且可以通过键来访问和操作对应的值。

1. 创建 Map

可以使用
  1. {}
复制代码
或者
  1. Map.from()
复制代码
方法来创建 Map。例如:
  1. // 使用 {} 创建 Map
  2. var myMap = {
  3.   'key1': 'value1',
  4.   'key2': 'value2',
  5.   'key3': 'value3',
  6. };

  7. // 使用 Map.from() 创建 Map
  8. var myMap = Map.from([
  9.   ['key1', 'value1'],
  10.   ['key2', 'value2'],
  11.   ['key3', 'value3'],
  12. ]);
复制代码
2. 添加元素

可以使用
  1. map[key] = value
复制代码
或者
  1. map.put(key, value)
复制代码
方法来添加元素。例如:
  1. myMap['key4'] = 'value4';
  2. myMap.put('key5', 'value5');
复制代码
3. 获取元素

可以使用
  1. map[key]
复制代码
方法来获取元素。如果键不存在,会返回 null。例如:
  1. var value = myMap['key1']; // value = 'value1'
复制代码
4. 删除元素

可以使用
  1. map.remove(key)
复制代码
或者
  1. map.clear()
复制代码
方法来删除元素。例如:
  1. myMap.remove('key2'); // 删除键为 'key2' 的元素
  2. myMap.clear(); // 清空所有元素
复制代码
5. 遍历元素

使用键来获取值:通过使用键作为索引,可以获取到与之对应的值。例如,map['key']可以获取到键为'key'的元素的值。
可以使用
  1. for..in
复制代码
循环或者
  1. map.keys
复制代码
  1. map.values
复制代码
方法来遍历元素。

5.1 使用keys方法获取所有的键

map.keys可以获取到Map中所有的键,返回的也是一个Iterable对象
  1. for (var key in myMap.keys) {
  2.   print('${key}: ${myMap[key]}');
  3. }
复制代码
或者:
  1. for (var key in myMap.keys) {
  2.   print('${key}: ${myMap.values.firstWhere((value) => value == myMap[key])}');
  3.    // 使用 values 遍历找到对应的值并输出,可能会效率低下,不建议频繁使用此操作。
  4. }
复制代码
或者
  1. void main() {  
  2.   var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
  3.    
  4.   for (var entry in map.entries) {  
  5.     print('Key: ${entry.key}, Value: ${entry.value}');  
  6.   }  
  7. }
复制代码
5.2 Map.Entry

firstEntry是Map类的一个方法,用于获取Map中的第一个元素。返回的是一个MapEntry对象,可以通过entry.key和entry.value来获取键和值。
  1. var entry = map.firstEntry; // 获取第一个元素  
  2. print('Key: ${entry.key}, Value: ${entry.value}');
复制代码
  1. lastEntry
复制代码
方法返回Map中的最后一个元素
  1. var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
  2. var lastEntry = map.lastEntry;
  3. print('Key: ${lastEntry.key}, Value: ${lastEntry.value}');
复制代码
输出结果为:Key: key3, Value: value3
  1. singleEntry
复制代码
方法返回Map中的唯一个元素,如果Map中只有一个元素,则返回该元素;如果Map中没有元素或者有多个元素,则返回null。
  1. var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
  2. var singleEntry = map.singleEntry;
  3. if (singleEntry != null) {
  4.   print('Key: ${singleEntry.key}, Value: ${singleEntry.value}');
  5. } else {
  6.   print('Map is empty or contains multiple entries.');
  7. }
复制代码
输出结果为:Key: key3, Value: value3
如果Map中没有元素或者有多个元素,使用
  1. singleEntry
复制代码
方法会返回null,需要进行空判断或者异常处理。

5.3 forEach方法对Map中的每个键值对进行遍历
  1. void main() {  
  2.   var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
  3.    
  4.   map.forEach((key, value) {  
  5.     print('Key: $key, Value: $value');  
  6.   });  
  7. }
复制代码
5.4 使用for循环遍历Map中的键值对
  1. void main() {  
  2.   var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
  3.    
  4.   for (var entry in map.entries) {  
  5.     print('Key: ${entry.key}, Value: ${entry.value}');  
  6.   }  
  7. }
复制代码
5.5 使用entries方法遍历Map中的所有键值对
  1. void main() {  
  2.   var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
  3.    
  4.   for (var entry in map.entries) {  
  5.     print('Key: ${entry.key}, Value: ${entry.value}');  
  6.   }  
  7. }
复制代码
到此这篇关于Flutter Map常用操作方法总结的文章就介绍到这了,更多相关Flutter Map内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
21
积分
22
注册时间
2022-12-25
最后登录
2022-12-25

发表于 2024-10-23 20:11:24 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-28
最后登录
2022-12-28

发表于 2024-10-29 07:44:40 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-25
最后登录
2022-12-25

发表于 2025-11-21 18:26:21 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表