Flutter学习笔记之Dart集合类型详解

前言

学习教程地址
系统:macOS
软件:Android Studio 4.1.2

一、List

1、List常用属性
List myList=['香蕉','苹果','西瓜'];
print(myList.length);//length长度--3
print(myList.isEmpty);//isEmpty是否为空--true
print(myList.isNotEmpty);//isNotEmpty是否不为空--false
print(myList.reversed);  //reversed对列表倒序排序--[西瓜, 苹果, 香蕉]
var newMyList=myList.reversed.toList();
print(newMyList);//[西瓜, 苹果, 香蕉]
2、List常用方法
List myList=['香蕉','苹果','西瓜'];
myList.add('桃子');//add增加一个元素
myList.addAll(['桃子','葡萄']); //addAll增加多个元素,拼接数组
print(myList);
print(myList.indexOf('苹x果'));//indexOf查找元素位置 查找不到返回-1  查找到返回索引值
myList.remove('西瓜');//remove删除一个指定元素
myList.removeAt(1);//removeAt根据下标删除对应元素
print(myList);
myList.fillRange(1, 2,'aaa');//fillRange修改指定范围1(含)--2(不含)之间的元素
myList.fillRange(1, 3,'aaa');//fillRange修改指定范围1(含)--3(不含)之间的元素
myList.insert(1,'aaa');//insert(index,value); 指定index位置插入元素value
myList.insertAll(1, ['aaa','bbb']);//insertAll(index,list)指定index位置插入多个元素list
var newMyList=myList.reversed.toList();//toList()其他类型转换成List
print(newMyList);//[西瓜, 苹果, 香蕉]
    
var str=myList.join('-');//join()list转换成字符串
print(str);
print(str is String);//true
    
var str='香蕉-苹果-西瓜';
var list=str.split('-');//split()字符串转换成List
print(list);
print(list is List);//true
3、map修改数据
//遍历值并修改,赋给newList
List myList=[1,3,4]; 
//两种写法,以下通用,涉及函数。
//写法1     
var newList=myList.map((value){
	return value*2;
});
print(newList.toList());
//写法2
var newL=myList.map((value) => value*2);
print(newL.toList());
4、where筛选数据
//遍历值并筛选出>5的值,赋给newList
List myList=[1,3,4,5,7,8,9];
var newList=myList.where((value){
	return value>5;
});
print(newList.toList());
5、any、where判断数据
//遍历值并判断是否含有>5的值
List myList=[1,3,4,5,7,8,9];
//只要集合里面有满足条件的就返回true
var f=myList.any((value){
	return value>5;
});
print(f);//true

//遍历值并判断是否全部>5
List myList=[1,3,4,5,7,8,9];
//全部满足条件返回true  否则返回false
var f=myList.every((value){
    return value>5;
});
print(f);//false

二、Set

Set不可以添加重复的数据,可以用来去重。

var s=new Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');
print(s);   //{香蕉, 苹果}
print(s.toList()); //[香蕉,苹果,苹果]

List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
var s=new Set();
s.addAll(myList);
print(s);//{香蕉, 苹果, 西瓜}
print(s.toList());//[香蕉, 苹果, 西瓜]

三、Map

1、Map常用属性
Map person={
  "name":"张三",
  "age":20,
  "sex":"男"
};
print(person.keys.toList());//keys获取所有的kay值
print(person.values.toList());//values获取所有的value值
print(person.isEmpty);//是否为空--false
print(person.isNotEmpty);//是否不为空--true
2、Map常用方法
Map person={
  "name":"张三",
  "age":20,
  "sex":"男"
};
//addAll合并Map,增加属性
person.addAll({
  "work":['敲代码','送外卖'],
  "height":160
});
print(person);
//remove(key)删除指定key的键值对
person.remove("sex");
print(person);
//containsValue(value)查看是否含有这个值,返回true/false
print(person.containsValue('张三'));
//clear()清空所有数据 
person.clear();
print(person);

四、集合内的通用方法forEach—遍历数据

1、遍历List
//遍历所有值
List myList=['香蕉','苹果','西瓜'];
myList.forEach((value){
	print("$value");
});
2、遍历Map
//遍历所有键值对
Map person={
	"name":"张三",
	"age":20
};
person.forEach((key,value){            
	print("$key---$value");
});
3、遍历Set
//遍历所有值
var s=new Set();
s.addAll([1,222,333]);
s.forEach((value)=>print(value));           
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值