Dart中的List, Set和Map

1. List

常用属性
属性功能
length长度
reversed倒序排序
isEmpty是否为空
isNotEmpty是否不为空
常用方法
List fruits = ['香蕉', '苹果', '西瓜'];
1. 增加

add: 增加一个

fruits.add('桃子');

addAll: 拼接数组(增加多个)

fruits.addAll(['葡萄', '梨']);
2. 查找

indexOf: 若查找成功则返回索引值,否则返回-1

print(fruits.indexOf('苹果')); // 输出结果:1
print(fruits.indexOf('火龙果'));  // 输出结果:-1
3. 删除

remove

removeAt

fruits.remove('西瓜');
fruits.removeAt(2);
4. 修改

fillRange(int start, int end, [dynamic fillValue])

fruits.fillRange(1, 2, "火龙果");
print(fruits);  // 输出结果:[香蕉, 火龙果, 西瓜]
fruits.fillRange(1, 3, "火龙果");
print(fruits);  // 输出结果:[香蕉, 火龙果, 火龙果]
5. 插入

insert

fruits.insert(1, "火龙果");
print(fruits);  // 输出结果:[香蕉, 火龙果, 苹果, 西瓜]

insertAll

List fruits = ["香蕉", "苹果", "西瓜"];
fruits.insertAll(1, ["火龙果", "梨"]);
print(fruits);  // 输出结果:[香蕉, 火龙果, 梨, 苹果, 西瓜]
6. List与字符串类型转换

join: 将List转换成字符串

List fruits = ["香蕉", "苹果", "西瓜"];
var str = fruits.join(',');
print(fruits);  // 输出结果:[香蕉, 苹果, 西瓜]
print(str);  // 输出结果:香蕉,苹果,西瓜

split: 将字符串转换成List

var str = "香蕉-苹果-西瓜";
var fruits = str.split('-');
print(fruits);  // 输出结果:[香蕉, 苹果, 西瓜]

2. Set

Set是无序且不能重复的集合,所以不能通过索引去获取值

使用Set最主要的功能是去除数组中的重复内容

定义Set
var s = new Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');
print(s);  // 输出结果:{香蕉, 苹果}
转换为List
s.toList()
对List进行去重
List myList = ['香蕉', '苹果', '西瓜', '香蕉', '苹果','西瓜', '香蕉','西瓜'];
var s = new Set();
s.addAll(myList);
print(s.toList());  // 输出结果:[香蕉, 苹果, 西瓜]

3. Map

映射(Map)是无序的键值对集合

常用属性
属性功能
keys获取所有的key值
values获取所有的value值
isEmpty是否为空
isNotEmpty是否不为空
常用方法
Map person = {
    "name": "张三",
    "age": 20,
    "sex": "男"
};
1. 增加

addAll

person.addAll({
    "work": ["敲代码", "送外卖"],
    "height": 160
});
2. 删除

remove

person.remove("sex");
3. 查找

containsValue: 若找到返回true, 否则返回false

person.containsValue('张三');

4. 其他常用方法

1. forEach

List

List fruits = ['香蕉', '苹果', '西瓜'];
fruits.forEach((fruit) {
  print("$fruit");
});

Set

var s = new Set();
s.addAll([1, 22, 333]);
s.forEach((element) => print(element));

Map

Map person = {"name": "张三", "age": 20, "sex": "男"};
person.forEach((key, value) {
  print("$key---$value");
});
2. map
List myList = [1, 5, 9];
var newList = myList.map((e) => e * 2).toList();
print(newList);  // 输出结果:[2, 10, 18]
3. where
List myList = [1, 5, 9];
var newList = myList.where((element) => element > 5).toList();
print(newList); // 输出结果:[9]
4. any

若集合中有满足的条件则返回true

List myList = [1, 5, 9];
var a = myList.any((element) {
  return element > 5;
});
print(a);  // 输出结果:true
5.every

如果集合中的每一个元素都满足条件则返回true

List myList = [1, 5, 9];
var a = myList.every((element) {
  return element > 5;
});
print(a);  // 输出结果:false
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值