# 10.集合类型
# list
/**
* List里面常用的属性和方法
*
* 常用属性:
* length 长度
* reversed 翻转
* isEmpty 是否为空
* isNotEmpty 是否不为空
* 常用方法:
* add 增加
* addAll 拼接数组
* indexOf 查找 传入具体值
* remove 删除 传入具体值
* removeAt 删除 传入索引值
* fillRange 修改
* insert(index,value) 指定位置插入
* insertAll(index,list) 指定位置插入List
* toList() 其他类型转换成List
* join() List转换成字符串
* split() 字符串转化为List
* forEach()
* map()
* where()
* any()
* every()
*/
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
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
# set
/**
* Set
*
* 用它最主要的功能就是去除数组重复内容
* Set是没有顺序且不能重复的集合, 所以不能铜鼓索引去获取值
*/
void main() {
var s = new Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');
print(s); // {香蕉, 苹果}
print(s.toList()); // [香蕉, 苹果]
// 数组去重
List mylist = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '西瓜',];
var s1 = new Set();
s1.addAll(mylist);
print(s1); // {香蕉, 苹果, 西瓜}
print(s1.toList()); // [香蕉, 苹果, 西瓜]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# map
/**
* 映射(Maps) 是无序的键值对
*
* 常用属性:
* keys 获取所有的key值
* values 获取所有的value值
* isEmpty 是否为空
* isNotEmpty 是否不为空
* 常用方法:
* remove(key) 删除指定key的数据
* addAll({...}) 合并映射, 给映射内增加属性
* containesValue 查看映射内的值, 返回true/false
* forEach
* map
* where
* any
* every
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# forEach
void main() {
// list
List myList = ['香蕉','苹果','西瓜'];
myList.forEach((value) {
print(value); // 香蕉 苹果 西瓜
});
// set
var s = new Set();
s.addAll([111,222,333]);
s.forEach((value)=>print(value)); // 111 222 333
// map
Map person = {
"name":"张三",
"age":20
};
person.forEach((key, value){
print('$key----$value'); // name----张三 age----20
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# map
void main() {
List myList = [1,3,4];
var newList = myList.map((value) {
return value*2;
});
print(newList.toList()); // [2, 6, 8]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# where
void main() {
List myList = [1,3,4,5,7,8,9];
var newList = myList.where((value) {
return value>5;
});
print(newList.toList()); // [7, 8, 9]
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# any
void main() {
List myList = [1,3,4,5,7,8,9];
// 只要集合里面有满足条件的就返回true, 类似于js中的some
var f = myList.any((value) {
return value>5;
});
print(f); // true
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# every
void main() {
List myList = [1,3,4,5,7,8,9];
// 全部满足条件的就返回true, 类似于js中的every
var f = myList.every((value) {
return value>5;
});
print(f); // false
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9