• Flutter Map 常用操作方法概述


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

    1. 创建 Map:

    可以使用 {} 或者 Map.from() 方法来创建 Map。例如:

    // 使用 {} 创建 Map
    var myMap = {
      'key1': 'value1',
      'key2': 'value2',
      'key3': 'value3',
    };
    
    // 使用 Map.from() 创建 Map
    var myMap = Map.from([
      ['key1', 'value1'],
      ['key2', 'value2'],
      ['key3', 'value3'],
    ]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    2. 添加元素:

    可以使用 map[key] = value 或者 map.put(key, value) 方法来添加元素。例如:

    myMap['key4'] = 'value4';
    myMap.put('key5', 'value5');
    
    • 1
    • 2
    3. 获取元素:

    可以使用 map[key] 方法来获取元素。如果键不存在,会返回 null。例如:

    var value = myMap['key1']; // value = 'value1'
    
    • 1
    4. 删除元素

    可以使用 map.remove(key) 或者 map.clear() 方法来删除元素。例如:

    myMap.remove('key2'); // 删除键为 'key2' 的元素
    myMap.clear(); // 清空所有元素
    
    • 1
    • 2
    5. 遍历元素:

    使用键来获取值:通过使用键作为索引,可以获取到与之对应的值。例如,map[‘key’]可以获取到键为’key’的元素的值。

    可以使用 for..in 循环或者 map.keysmap.values 方法来遍历元素。

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

    map.keys可以获取到Map中所有的键,返回的也是一个Iterable对象

    for (var key in myMap.keys) {
      print('${key}: ${myMap[key]}');
    }
    
    • 1
    • 2
    • 3

    或者:

    for (var key in myMap.keys) {
      print('${key}: ${myMap.values.firstWhere((value) => value == myMap[key])}');
       // 使用 values 遍历找到对应的值并输出,可能会效率低下,不建议频繁使用此操作。
    }
    
    • 1
    • 2
    • 3
    • 4

    或者

    void main() {  
      var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
        
      for (var entry in map.entries) {  
        print('Key: ${entry.key}, Value: ${entry.value}');  
      }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    5.2 Map.Entry
    • firstEntry是Map类的一个方法,用于获取Map中的第一个元素。返回的是一个MapEntry对象,可以通过entry.key和entry.value来获取键和值。
    var entry = map.firstEntry; // 获取第一个元素  
    print('Key: ${entry.key}, Value: ${entry.value}');
    
    • 1
    • 2
    • lastEntry方法返回Map中的最后一个元素
    var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
    var lastEntry = map.lastEntry;
    print('Key: ${lastEntry.key}, Value: ${lastEntry.value}');
    
    • 1
    • 2
    • 3

    输出结果为:Key: key3, Value: value3

    • singleEntry方法返回Map中的唯一个元素,如果Map中只有一个元素,则返回该元素;如果Map中没有元素或者有多个元素,则返回null。
    var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
    var singleEntry = map.singleEntry;
    if (singleEntry != null) {
      print('Key: ${singleEntry.key}, Value: ${singleEntry.value}');
    } else {
      print('Map is empty or contains multiple entries.');
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出结果为:Key: key3, Value: value3

    如果Map中没有元素或者有多个元素,使用singleEntry方法会返回null,需要进行空判断或者异常处理。

    5.3 forEach方法对Map中的每个键值对进行遍历
    void main() {  
      var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
        
      map.forEach((key, value) {  
        print('Key: $key, Value: $value');  
      });  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    5.4 使用for循环遍历Map中的键值对
    void main() {  
      var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
        
      for (var entry in map.entries) {  
        print('Key: ${entry.key}, Value: ${entry.value}');  
      }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    5.5 使用entries方法遍历Map中的所有键值对
    void main() {  
      var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};  
        
      for (var entry in map.entries) {  
        print('Key: ${entry.key}, Value: ${entry.value}');  
      }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    网课答案公众号零基础怎么制作(内含详细教程)
    安卓面试总结(4)——Java 多线程II
    针对图像分类的数据增强方法,离线增强,适合分类,无标签增强
    《QDebug 2022年8月》
    CSRF(Steam的链接不用随便点)
    kubernetes 静态存储与动态存储
    瑞芯微rk356x板子快速上手
    在 Google Cloud 上轻松部署开放大语言模型
    理解HMM算法
    Vue使用Echarts绘画地图可视化
  • 原文地址:https://blog.csdn.net/zl18603543572/article/details/134227612