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

相关推荐
JMchen12316 小时前
Android Activity管理工具类
android·java·学习·移动开发·android-studio
kirk_wang1 天前
Flutter艺术探索-Flutter网络请求基础:http包使用指南
flutter·移动开发·flutter教程·移动开发教程
kirk_wang1 天前
Flutter艺术探索-Flutter包管理:pubspec.yaml配置详解
flutter·移动开发·flutter教程·移动开发教程
kirk_wang2 天前
Flutter艺术探索-Flutter性能优化基础:const与const构造函数
flutter·移动开发·flutter教程·移动开发教程
kirk_wang2 天前
Flutter艺术探索-Flutter国际化:多语言支持实现
flutter·移动开发·flutter教程·移动开发教程
kirk_wang2 天前
Flutter艺术探索-Flutter错误处理:try-catch与异常捕获
flutter·移动开发·flutter教程·移动开发教程
kirk_wang3 天前
Flutter艺术探索-Flutter生命周期:State生命周期详解
flutter·移动开发·flutter教程·移动开发教程
Mr -老鬼5 天前
移动端跨平台框架的选型指南
经验分享·移动开发·框架·团队开发·个人开发·跨平台
kirk_wang6 天前
Flutter `share_plus` 库在鸿蒙 OHOS 平台的分享功能适配实践
flutter·移动开发·跨平台·arkts·鸿蒙
kirk_wang6 天前
Flutter艺术探索-Flutter热重载与热重启原理
flutter·移动开发·flutter教程·移动开发教程