第一百二十五回 dart中List和Map的常见用法

文章目录

我们在上一章回中介绍了Flexible组件相关的内容,本章回中将介绍 dart中的List和Map .闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里介绍的List也叫列表,它表示一组相同类型变量的集合。map也叫映射或者字典,它表示键值对的组合。在高级语言中都有list和map,比如Java,Swift以及Kotlin,dart也提供list,本章回中将是介绍它们的用法。为什么要在这里介绍?因为在前面章回中介绍的各种单选列表,复选列表都需要使用List,而我们在前面章回中没有介绍过List相关的知识,很多看官们希望我们介绍List相关的知识,因此才有了本章回的内容。

使用方法

初始化

List初始化可以使用中括号,在中括号内输入具体数值相当于给List赋值。还可以使用generate()方法来初始化List.

map的初始化使用大括号,在大括号内输入数值,相关于给map赋值,还可以通过List转换成map来给map赋值。下面是示例代码:

dart 复制代码
    List<int> intList = List.generate(3, (index) => index+2);
    List<String> strList = ['one','two','three','four','five'];
    Map<int,int> iMap = {1:1,2:2}; 
    Map<int,int> intMap = intList.asMap();

相互转换

List和map可以相互转换,List转换成map时索引值从0开始,与索引值对应的value就是list中的元素的值,比如:map[key,value],list= [value...] key=index...,value=list[index];.map中的key和value可以单独转换成List.下面是示例代码:

dart 复制代码
    Map<int,int> intMap = intList.asMap();
    Map<int,String> strMap = strList.asMap();
    ///map的key和value可以单独转换成list
    List<int> exchangeIntList = intMap.values.toList();
    List<int> exchangeIntListKey = intMap.keys.toList();

元素操作

List中的元素可以通过map()方法对元素进行相关操作,然后把操作后的内容再转换成List.这个功能在程序中经常使用,下面是示例代码:

dart 复制代码
    ///把List中的每个元素都加3后生成新的List
    List<int> filterList = intList.map((e) => e+3).toList();
    ///把String类型的List转换成ListTile类型的List
    strList.map((e) => ListTile(title: Text(e)),).toList();

经验分享

上面介绍的这些内容是我们在博客中经常使用的内容,建议大家自己动手去实践一下,这样才能掌握List和map的使用方法。List和map是常用的类型,它们还有很多的用法,我在这里就不详细介绍了。我的经验是:如果想使用某个功能,先看看没有现成方法,然后再查看该方法的源代码,源代码中包含有详细的说明和示例程序。依据示例程序就可以实现我们想要的功能。

看官们,与list和map相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关推荐
Android技术栈5 天前
鸿蒙开发(NEXT/API 12)【穿戴设备信息查询】手机侧应用开发
嵌入式硬件·硬件架构·移动开发·harmonyos·鸿蒙·鸿蒙系统
Android技术栈6 天前
鸿蒙开发(NEXT/API 12)【硬件(取消注册监听系统导航信息和指令)】车载系统
车载系统·移动开发·harmonyos·鸿蒙·鸿蒙系统·openharmony·硬件
OH五星上将7 天前
OpenHarmony(鸿蒙南向)——平台驱动指南【MIPI CSI】
linux·驱动开发·嵌入式硬件·移动开发·harmonyos·鸿蒙嵌入式
让开,我要吃人了10 天前
HarmonyOS鸿蒙开发实战( Beta5.0)页面加载效果实现详解实践案例
开发语言·前端·华为·移动开发·harmonyos·鸿蒙·鸿蒙系统
让开,我要吃人了11 天前
HarmonyOS鸿蒙开发实战(5.0)自定义安全键盘场景实践
开发语言·前端·华为·移动开发·harmonyos·鸿蒙·鸿蒙系统
让开,我要吃人了11 天前
HarmonyOS鸿蒙开发实战(5.0)自定义路由栈管理
开发语言·前端·华为·移动开发·harmonyos·鸿蒙·鸿蒙系统
让开,我要吃人了11 天前
HarmonyOS鸿蒙开发实战(5.0)多文件下载监听应用案例实践
开发语言·前端·华为·移动开发·harmonyos·鸿蒙·鸿蒙系统
OH五星上将13 天前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核启动】
linux·嵌入式硬件·移动开发·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
让开,我要吃人了13 天前
HarmonyOS鸿蒙开发实战( Beta5.0)Web组件预览PDF文件实现案例
开发语言·华为·程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统
OH五星上将14 天前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【用户态内存调测】
嵌入式硬件·移动开发·harmonyos·内存管理·openharmony·鸿蒙开发·liteos-a