集合类型List/Set/Map
List
创建List方法
1
2
3
4
5
6
7
8
9
10
11
| // 方法一
var list1 = <int>[1, 2, 3];
// 方法二
List list2 = <int>[1, 2, 3];
// 方法三 创建固定长度的List
List list3 = List<String>.filled(2, 'hello');
// 方法四 已被弃用
var list4 = new List();
|
List 常用的属性和方法
常用属性
length 长度reversed 翻转isEmpty 是否为空isNotEmpty 是否不为空
1
2
3
4
5
6
7
8
9
10
11
12
| List list = [1, 2, 3, 4, 5];
print(list.length); // 5
print(list.isEmpty); // false
print(list.isNotEmpty); // true
print(list.reversed); // (5, 4, 3, 2, 1)
var newList = list.reversed.toList();
print(newList); // [5, 4, 3, 2, 1]
|
常用方法
1
2
3
| List list = [1, 2, 3];
list.add(4); // 增加一个
print(list); // [1, 2, 3, 4]
|
1
2
3
| List list = [1, 2, 3];
list.addAll([4, 5, 6]); // 拼接
print(list); // [1, 2, 3, 4, 5, 6]
|
indexOf() 查找传入具体值 - 查找到返回索引值 否则返回 -1
1
2
3
| List list = [1, 2, 3];
print(list.indexOf(2)); // 1
print(list.indexOf(10)); // -1
|
1
2
3
| List list = ['张三', '李四', '王五'];
list.remove('李四');
print(list); // [张三, 王五]
|
removeAt(index) 删除 - 根据索引删除
1
2
3
| List list = ['张三', '李四', '王五'];
list.removeAt(1);
print(list); // [张三, 王五]
|
fillRange(start, end, value) 修改
1
2
3
4
5
6
7
| List list1 = ['张三', '李四', '王五'];
list1.fillRange(1, 2, 'aa');
print(list1); // [张三, aa, 王五]
List list2 = ['张三', '李四', '王五'];
list2.fillRange(1, 3, 'aa');
print(list2); // [张三, aa, aa]
|
insert(index, value) 指定位置插入 - 一个
1
2
3
| List list = ['张三', '李四', '王五'];
list.insert(1, 'aa');
print(list); // [张三, aa, 李四, 王五]
|
insertAll(index, list) 指定位置插入List
1
2
3
| List list = ['张三', '李四', '王五'];
list.insertAll(1, ['aa', 'bb']);
print(list); // [张三, aa, bb, 李四, 王五]
|
toList() 其它类型转换成Listjoin() List转换成字符串
1
2
3
| List list = ['张三', '李四', '王五'];
String str = list.join('-');
print(str); // 张三-李四-王五
|
1
2
3
| String str = '张三-李四-王五';
List list = str.split('-');
print(list); // [张三, 李四, 王五]
|
forEach()map()whereanyevery
Set
- 主要功能就是去除数组中重复内容
- Set 是没有顺序且不能重复的集合,所以不能通过索引去获取值
1
2
3
4
5
6
7
8
9
| var s = new Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');
print(s); // {香蕉, 苹果}
// 转换为List
var list = s.toList();
print(list); // [香蕉, 苹果]
|
集合去重
1
2
3
4
| List list = ['张三', '李四', '王五', '李四', '王五'];
var s = new Set();
s.addAll(list);
print(s.toList()); // [张三, 李四, 王五]
|
Map
创建Map方法
1
2
3
4
5
6
7
8
9
10
| // 方法一
var person = {
'name': '张三',
'age': 20
}
// 方法二
var person = new Map();
m['name'] = '张三';
m['age'] = 20;
|
常用属性和方法
常用属性
1
2
3
4
5
6
7
| var person = {
'name': '张三',
'age': 20
};
print(person.keys); // (name, age)
print(person.keys.toList()); // [name, age]
|
1
2
3
4
5
6
7
| var person = {
'name': '张三',
'age': 20
};
print(person.values); // (张三, 20)
print(person.values.toList()); // [张三, 20]
|
1
2
3
4
5
6
| var person = {
'name': '张三',
'age': 20
};
print(person.isEmpty); // false
|
1
2
3
4
5
6
| var person = {
'name': '张三',
'age': 20
};
print(person.isNotEmpty); // true
|
常用方法
1
2
3
4
5
6
7
| var person = {
'name': '张三',
'age': 20,
'sex': '男'
};
person.remove('sex');
print(person); // {name: 张三, age: 20}
|
addAll({...}) 合并映射 给映射内增加属性
1
2
3
4
5
6
7
8
9
| var person = {
'name': '张三',
'age': 20
};
person.addAll({
'sex': '男',
'wrok': ['程序员', '快递员']
});
print(person); // {name: 张三, age: 20, sex: 男, wrok: [程序员, 快递员]}
|
containsValue 查看映射内的值 返回true/false
1
2
3
4
5
6
| var person = {
'name': '张三',
'age': 20,
'sex': '男'
};
print(person.containsValue('张三')); // true
|
通用方法
forEach
1
2
3
4
5
| // List
List list = ['张三', '李四', '王五'];
list.forEach((value) {
print(value); // 张三 李四 王五
});
|
1
2
3
4
| // Set
var s = new Set();
s.addAll([1, 2, 3]);
s.forEach((value) => print(value)); // 1 2 3
|
1
2
3
4
5
6
7
8
9
10
11
12
13
| // Maps
var person = {
'name': '张三',
'age': 20,
'sex': '男'
};
person.forEach((key, value) {
print('$key --- $value');
});
// name --- 张三
// age --- 20
// sex --- 男
|
map
1
2
3
4
5
6
| List list = [1, 2, 3];
var newList = list.map((value) {
return value * 2;
});
print(newList); // (2, 4, 6)
print(newList.toList()); // [2, 4, 6]
|
where
返回满足条件的集合
1
2
3
4
5
6
| List list = [1, 2, 3, 5, 7, 8, 9];
var newList = list.where((value) {
return value > 5;
});
print(newList); // (7, 8, 9)
print(newList.toList()); // [7, 8, 9]
|
any
只要有一个条件满足的 就返回 true, 否则返回 false
1
2
3
4
5
| List list = [1, 2, 3, 5, 7, 8, 9];
var f = list.any((value) {
return value > 5;
});
print(f); // true
|
every
每一个都要满足条件才会返回 true,否则返回 false
1
2
3
4
5
| List list = [1, 2, 3, 5, 7, 8, 9];
var f = list.every((value) {
return value > 5;
});
print(f); // false
|