第一百二十五回 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相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关推荐
kirk_wang4 天前
Flutter艺术探索-Flutter Shader编程:着色器与特效实现
flutter·移动开发·flutter教程·移动开发教程
JMchen1234 天前
Android TCP连接实战:详解一个高效可靠的TCP客户端实现
android·java·经验分享·网络协议·tcp/ip·移动开发·android-studio
JMchen1234 天前
AR Core与CameraX的融合:测量应用从原理到实现
android·经验分享·程序人生·ar·移动开发·android studio·camerax
JMchen1234 天前
Android相机硬件抽象层(HAL)逆向工程:定制ROM的相机优化深度指南
android·开发语言·c++·python·数码相机·移动开发·android studio
kirk_wang5 天前
Flutter艺术探索-Flutter自动化测试:集成测试与Widget测试
flutter·移动开发·flutter教程·移动开发教程
kirk_wang5 天前
Flutter艺术探索-Flutter CI/CD配置:GitHub Actions自动化部署
flutter·移动开发·flutter教程·移动开发教程
kirk_wang5 天前
Flutter艺术探索-Flutter三方库鸿蒙适配实战:从原理到实践
flutter·移动开发·flutter教程·移动开发教程
JMchen1235 天前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
kirk_wang6 天前
Flutter艺术探索-Flutter渲染管道:RenderObject与Layer深度解析
flutter·移动开发·flutter教程·移动开发教程
kirk_wang6 天前
Flutter艺术探索-Flutter相机与相册:camera库与image_picker集成
flutter·移动开发·flutter教程·移动开发教程