【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )

举报
韩曙亮 发表于 2022/01/11 00:06:33 2022/01/11
【摘要】 文章目录 一、 Dart 数据类型 Map 类型二、 Map 类型初始化并赋值1、 创建 Map 对象同时进行初始化操作2、 先创建 Map 对象再进行赋值 三、 Map 集合遍历1、 使用 ...





一、 Dart 数据类型 Map 类型



Dart 中的 Map 数据类型与 Java 类似 , 由键值对组成 , 键 Key , 值 Value ;

其中 Key 的值在 Map 中必须是唯一的 , Value 的值可以重复 ;





二、 Map 类型初始化并赋值





1、 创建 Map 对象同时进行初始化操作


创建 Map 对象同时进行初始化操作 : 通过 {} 初始化 Map 对象, 每个元素形式为 Key : Value , 每个元素的 键( Key )值 ( Value ) 之间使用 冒号 " : " 分割 , 元素与元素之间使用 逗号 " , " 分割 ;

代码示例 :

    // 通过 {} 初始化 Map 对象, 每个元素形式为 Key : Value
    // 键( Key ) 与 值 ( Value ) 之间使用冒号 " : " 分割
    // 元素与元素之间使用逗号 " , " 分割
    Map student = {1 : "Tom", 2 : "Jerry", 3 : "Trump"};

    // 打印 Map 集合
    print(student);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行结果 :

{1: Tom, 2: Jerry, 3: Trump}

  
 
  • 1


2、 先创建 Map 对象再进行赋值


先创建 Map 对象再进行赋值 : 先创建一个空的 Map 集合 , 使用 下标 的方式为 Map 集合赋值 , 用法如下 :

    // II . 先创建空的 Map 集合 , 然后再进行初始化操作
    Map president = {};

    // 为 Map 集合添加元素
    president[1] = "Bush";
    president[2] = "Obama";
    president[3] = "Trump";

    // 打印 Map 集合
    print(president);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

打印结果 :

{1: Bush, 2: Obama, 3: Trump}

  
 
  • 1




三、 Map 集合遍历





1、 使用 forEach 遍历 Map 集合


使用 forEach 遍历 Map 集合 :

    // 1 . 使用 forEach 进行遍历
    president.forEach( (key, value){
      print("forEach 遍历 : $key : $value");
    } );

  
 
  • 1
  • 2
  • 3
  • 4

打印结果 :

forEach 遍历 : 1 : Bush
forEach 遍历 : 2 : Obama
forEach 遍历 : 3 : Trump

  
 
  • 1
  • 2
  • 3


2、 使用普通 for 循环遍历 Map 集合


使用普通 for 循环遍历 Map 集合 :

    // 2 . 通过 for 循环遍历 Map 集合
    // 调用 Map 对象的 keys 成员 , 返回一个由 键 Key 组成的数组
    for (var key in president.keys){
      print("for 循环遍历 : Key : $key , Value : ${president[key]}");
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

打印结果 :

for 循环遍历 : Key : 1 , Value : Bush
for 循环遍历 : Key : 2 , Value : Obama
for 循环遍历 : Key : 3 , Value : Trump

  
 
  • 1
  • 2
  • 3


3、 使用 map 方法进行遍历生成新的 Map 集合


使用 map 方法进行遍历生成新的 Map 集合 : 使用 map 方法 进行遍历 , 遍历过程中 生成新的 Map 集合 , 遍历后 , 会返回一个新的 Map 集合 , 传入一个回调函数 , 参数是 Map 集合中每个元素的 键值对 key 和 value , 返回值是新的 Map 集合 ;

下面的示例将 原 Map 集合中的键值对对调 , 生成一个新的 Map 集合 , 并打印新的 Map 集合中的内容 ;

    // 3 . 使用 map 方法进行遍历
    // 遍历过程中生成新的 Map 集合
    // 遍历后 , 会返回一个新的 Map 集合
    // 传入一个回调函数 , 参数是 key value , 返回值是新的 Map 集合
    Map president2 = president.map(
            (key, value){
          // 这里将 Map 集合中的 Key 和 Value 进行颠倒 , 生成一个新的 Map 集合
          return MapEntry(value, key);
        }
    );

    // 打印新的 Map 集合
    print(president2);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

打印结果 :

{Bush: 1, Obama: 2, Trump: 3}

  
 
  • 1




四、 完整代码示例




import 'package:flutter/material.dart';

class DartType_Map extends StatefulWidget {
  @override
  _DartType_ListState createState() => _DartType_ListState();
}

class _DartType_ListState extends State<DartType_Map> {
  @override
  Widget build(BuildContext context) {

    mapDemo();

    return Container(child: Text('Map 数据类型'));
  }


  /**
   * Map 示例
   */
  mapDemo(){
  
    // I . 定义 Map 集合并初始化

    // 通过 {} 初始化 Map 数据, 每个元素形式为 Key : Value
    // 键( Key ) 与 值 ( Value ) 之间使用冒号 " : " 分割
    // 元素与元素之间使用逗号 " , " 分割
    Map student = {1 : "Tom", 2 : "Jerry", 3 : "Trump"};

    // 打印 Map 集合
    print(student);


    // II . 先创建空的 Map 集合 , 然后再进行初始化操作
    Map president = {};

    // 为 Map 集合添加元素
    president[1] = "Bush";
    president[2] = "Obama";
    president[3] = "Trump";

    // 打印 Map 集合
    print(president);


    // III . Map 集合遍历

    // 1 . 使用 forEach 进行遍历
    president.forEach( (key, value){
      print("forEach 遍历 : $key : $value");
    } );


    // 2 . 通过 for 循环遍历 Map 集合
    // 调用 Map 对象的 keys 成员 , 返回一个由 键 Key 组成的数组
    for (var key in president.keys){
      print("for 循环遍历 : Key : $key , Value : ${president[key]}");
    }


    // 3 . 使用 map 方法进行遍历
    // 遍历过程中生成新的 Map 集合
    // 遍历后 , 会返回一个新的 Map 集合
    // 传入一个回调函数 , 参数是 key value , 返回值是新的 Map 集合
    Map president2 = president.map(
            (key, value){
          // 这里将 Map 集合中的 Key 和 Value 进行颠倒 , 生成一个新的 Map 集合
          return MapEntry(value, key);
        }
    );

    // 打印新的 Map 集合
    print(president2);


  }


}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81

执行结果 :

{1: Tom, 2: Jerry, 3: Trump}
{1: Bush, 2: Obama, 3: Trump}
forEach 遍历 : 1 : Bush
forEach 遍历 : 2 : Obama
forEach 遍历 : 3 : Trump
for 循环遍历 : Key : 1 , Value : Bush
for 循环遍历 : Key : 2 , Value : Obama
for 循环遍历 : Key : 3 , Value : Trump
{Bush: 1, Obama: 2, Trump: 3}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述





五、 相关资源



参考资料 :


博客源码下载 :

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/113700234

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。