Flutter学习06:Dart集合类型List、Set、Map及循环语句

张建 lol

List 里面常用的属性和方法

  1. 常用属性
  • length:长度
  • reversed:翻转
  • isEmpty:是否为空
  • isNotEmpty:是否不为空
  1. 常用方法
  • add:增加
  • addAll:拼接数组
  • indexOf:查找 传入具体值
  • remove:删除 传入具体值
  • removeAt:删除 传入具体值
  • fillRange:修改
  • inset(index,value):指定位置插入
  • insertAll(index,list):指定位置插入List
  • toList():其他类型转换成List
  • join():List转换成字符串
  • split():字符串转化成List
  • forEach
  • map
  • where
  • any
  • every
  1. 使用
  • 由前面的章节我们知道创建List集合有几种方式:
1
2
3
4
5
6
7
8
9
10
11
// 第一种创建方式
List l1 = ["香蕉", "苹果", true, 12];
print(l1); // [香蕉, 苹果, true, 12]

// 第二种创建方式
var l2 = ["香蕉", "苹果", true, 12];
print(l2); // [香蕉, 苹果, true, 12]

// 第三种创建方式 指定类型String
var l3 = <String>["香蕉", "苹果"];
print(l3); // [香蕉, 苹果]
  • List里面的属性
1
2
3
4
5
6
7
8
// 获取长度
print(l3.length); // 2
// 判断是否为空
print(l3.isEmpty); // false
// 判断是否不为空
print(l3.isNotEmpty); // true
// 翻转
print(l3.reversed.toList()); // [西瓜, 苹果, 香蕉]
  • List里面的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List myList = ["张三"];
// 增加一个元素
myList.add("西瓜"); // [张三, 李四]
// 拼接数组
myList.addAll(["王二", "麻子"]); // [张三, 李四, 王二, 麻子]
// indexOf查找数据 查找不到返回-1 查找到返回具体下标索引值
print(myList.indexOf("苹果")); // -1
// 移除某个元素
myList.remove("张三");
// 移除某个下标元素
myList.removeAt(1);
// 修改某个范围的元素
myList.fillRange(0, 1, "LiSi");

// list转字符串
var myStr = myList.join(",");
print(myStr); // LiSi,麻子

// 字符串转list
var str = "1-2-3";
List l = str.split("-");
print(l); // [1, 2, 3]

set 集合

  • 用它最主要的功能就是去除数组重复内容

  • 是没有顺序且不能重复的集合,所以不能通过索引去获取值

使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var s = new Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');
print(s); // {香蕉, 苹果}

// set 转 list
print(s.toList()); // [香蕉, 苹果]

// 去重
List myList = ['香蕉', '苹果', '香蕉'];
var set = new Set();
set.addAll(myList);
print(set); // {香蕉, 苹果}

map 映射

  1. 常用属性
1
2
3
4
keys            获取所有的key值
values 获取所有的value值
isEmpty 是否为空
isNotEmpty 是否不为空
  1. 常用方法
1
2
3
4
5
6
7
8
remove(key)     删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
forEach
map
where
any
every
  1. 使用
  • 创建方式
1
2
3
4
5
6
7
// 第一种
var person = {"name": "张三", "age": 20};

// 第二种
var m = new Map();
m["name"] = "李四";
print(m);
  • 常用属性
1
2
3
4
print(person.keys.toList());
print(person.values.toList());
print(person.isEmpty);
print(person.isNotEmpty);
  • 常用方法
1
2
3
4
5
6
7
8
// 添加元素
m.addAll({"age": 33});
print(m); // {name: 李四, age: 33}
// 移除某个元素
m.remove("sex");
// 是否包含某个值
print(m.containsValue("张三")); // false

forEach map where every

  • list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
List myList = ["香蕉", "苹果"];

for (var item in myList) {
print(item); // 香蕉 苹果
}

myList.forEach((element) {
print(element); // 香蕉 苹果
});

// map 修改集合中的数据
List l1 = [1, 3, 5];
var newList = l1.map((value) {
return value * 2;
});
print(newList.toList());

// where 循环遍历数组满足条件返回新数组
List l2 = [1, 2, 3, 4, 5];
var new2 = l2.where((element) {
return element > 4;
});
print(new2.toList());

// any 只要集合里面有满足条件的就返回true
List l3 = [1, 2, 3, 4, 5];
var new3 = l2.any((element) {
return element > 4;
});
print(new3); // true

// every 集合里面每一个都满足条件返回true
List l4 = [1, 2, 3, 4, 5];
var new4 = l4.every((element) {
return element > 4;
});
print(new4); // false
  • map
1
2
3
4
5
6
7
8
9
var m = new Map();
m["name"] = "李四";
// forEach
m.forEach((key, value) {
print("$key --- $value");
});

=====
name --- 李四
  • Post title:Flutter学习06:Dart集合类型List、Set、Map及循环语句
  • Post author:张建
  • Create time:2023-03-31 00:53:20
  • Post link:https://redefine.ohevan.com/2023/03/31/Flutter学习/Flutter学习06:Dart集合类型List、Set、Map及循环语句/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
Flutter学习06:Dart集合类型List、Set、Map及循环语句