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
两种定义方式:
List myList = ['香蕉','苹果','西瓜'];
print(myList[1]);
var list = new List();
print(list);
List里面的属性:
List myList = ['香蕉','苹果','西瓜'];
print(myList.length); // 3
print(myList.isEmpty); // false
print(myList.isNotEmpty); // true
print(myList.reversed); // 对列表倒序排序,返回的不是一个数组: (西瓜,苹果,香蕉)
var newMyList = myList.reversed.toList(); // 使用toList()方法转成数组类型
print(newMyList);
List里面的方法:
List myList=['香蕉','苹果','西瓜'];
myList.add('桃子'); // 增加数据,只能增加一个
myList.addAll(['桃子','葡萄']); // 拼接数组
print(myList);
// indexOf 查找数据 查找不到返回-1 查找到返回索引值
print(myList.indexOf('苹x果'));
myList.remove('西瓜'); // 移除指定元素
myList.removeAt(1); // 移除指定下标的元素
print(myList);
List myList = ['香蕉','苹果','西瓜'];
// 修改: start 起始下标, end 终止下标, value 替换后的值
myList.fillRange(1, 2,'aaa'); // ['香蕉','aaa','西瓜']
myList.fillRange(1, 3,'aaa'); // ['香蕉','aaa','aaa']
// 插入 一个
myList.insert(1,'aaa'); // ['香蕉','aaa', '苹果','西瓜']
// 插入 多个
myList.insertAll(1, ['aaa','bbb']); // ['香蕉','aaa', 'bbb', '苹果','西瓜']
// List 转换成字符串, 参数为分隔符
var str = myList.join('-'); // '香蕉-苹果-西瓜'
print(str is String); // true
var str='香蕉-苹果-西瓜';
// 字符串转成 List,
var list=str.split('-'); // ['香蕉','苹果','西瓜']
print(list is List); // true
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 的常用属性和方法
映射(Maps)是无序的键值对:
常用属性:
keys 获取所有的key值
values 获取所有的value值
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
forEach
map
where
any
every
两种定义Map
的方式:
Map person = {
"name":"张三", // 键名必须使用引号
"age":20
};
var m=new Map();
m["name"]="李四";
print(person); // // { name: 张三, age: 20 }
print(m); // { name: 李四 }
Map 的常用属性
Map person = {
"name":"张三",
"age":20,
"sex":"男"
};
// 获取所有键名,使用 toList() 方法转成数组类型
print(person.keys.toList()); // [name, age, sex]
// 获取所有值,使用 toList() 方法转成数组类型
print(person.values.toList()); // [张三, 20, 男]
// 判断 Map 是否为空
print(person.isEmpty); // false
print(person.isNotEmpty); // true
Map 的常用方法
Map person={
"name":"张三",
"age":20,
"sex":"男"
};
// 增加键值,只有一个 addAll() 方法
person.addAll({
"work":['敲代码','送外卖'],
"height":160
});
print(person); // {name: 张三, age: 20, sex: 男, work: [敲代码, 送外卖], height: 160}
// 删除某个键值,传入键名
person.remove("sex");
print(person);
// 是否有某个值
print(person.containsValue('张三')); // true
常用的循环方法 (通用)
forEach
map
where
any
every
List myList=['香蕉','苹果','西瓜'];
// 基本的 for 循环写法
for(var i = 0; i < myList.length; i++){
print(myList[i]);
}
// for...in 用法
for(var item in myList){
print(item);
}
// forEach 用法 - List 类型里只有一个参数 value
myList.forEach((value){
print("$value");
});
List myList = [1,3,4];
List newList = new List();
for(var i = 0; i < myList.length; i++){
newList.add(myList[i]*2);
}
print(newList);
// map 循环:返回的结果使用 toList() 可以变成一个新的数组
List myList = [1,3,4];
var newList = myList.map((value){
return value * 2;
});
print(newList.toList());
// where 循环:返回符合条件的数据,返回的结果使用 toList() 可以变成一个新的数组
List myList=[1,3,4,5,7,8,9];
var newList=myList.where((value){
return value > 5;
});
print(newList.toList());
// any 循环:返回一个布尔值
List myList=[1,3,4,5,7,8,9];
var f=myList.any((value){ // 只要集合里面有满足条件的就返回 true
return value > 5;
});
print(f);
// every 循环:返回一个布尔值
List myList=[1,3,4,5,7,8,9];
var f=myList.every((value){ // 每一个都满足条件返回true 否则返回false
return value>5;
});
print(f);
// set
var s = new Set();
s.addAll([1,222,333]);
s.forEach((value)=>print(value));
// map
Map person={
"name":"张三",
"age":20
};
person.forEach((key,value){
print("$key---$value");
});