/**
* List里面常用的属性和方法
* 常用属性:
* length 长度
* reversed 翻转
* isEmpty 是否为空
* isNotEmpty 是否为不空
*
* 常用方法:
* add 增加
* addAll 拼接数组
* indexOf 查找 传入具体值返回index,没有返回-1
* remove 删除 传入具体值
* removeAt 删除 传入具体值
* fillRange 修改
* insert(index, value) 指定位置插入
* insertAll(index, List) 指定位置插入List
* toList() 其他类型转化成List
* join() List转换成字符串
* split() 字符串转化成List
* forEach 遍历
* map
*
*
*
* Set
* 用它最主要的功能就是出数组重复内容
* Set是没有书序且不能重复的集合,不能通过索引去获取值
*
*
* Map映射 是无序的键值对
* 常用属性:
* keys 获取所有的key值
* values 获取所有的value值
* isEmpty 是否为空
* isNotEmpty 是否不为空
* 常用方法:
* remove(key) 删除指定key的数据
* addAll({...}) 合并映射
* containsValue 查看映射内的值, 返回true/false
* forEach
* map
* where
* any
* every
*
*
*for in 对于List可以, Map不能用
forEach 对于List和Map都可以
*/
void main() {
aboutList();
// aboutSet();
// aboutMap();
}
// List相关
void aboutList() {
var l1 = ["苹果"];
l1.add("香蕉");
// reversed只是翻转得到的不是List,需要用toList转一下
var t1 = l1.reversed;
print("t1 = $t1"); //(香蕉, 苹果)
var l2 = t1.toList();
print("l2 = $l2"); //[香蕉, 苹果]
// 拼接数组
l1.addAll(["梨子", "西瓜"]);
print("l1 = $l1");
var idx = l1.indexOf("苹果");
print("idx = $idx");
// 没有这个值返回的就是-1
idx = l1.indexOf("菠萝");
print("idx = $idx");
// l1.remove("苹果");
// l1.removeAt(2);
// fillRange,range是前包后不包,比如下面是从0开始到2结束,0,1,2三个下标对应的元素都改为"回笼过"
print(l1);
l1.fillRange(0, 3, "火龙果");
print(l1);
var str = l1.join("-");
print(str); //火龙果-火龙果-火龙果-西瓜
l2 = str.split("-");
print(l2); //[火龙果, 火龙果, 火龙果, 西瓜]
// 循环遍历 for in
for (var item in l2) {
print(item);
}
// forEach
l2.forEach((element) {
print(element);
});
// List的
// 1.map方法 返回一个新的List
var l4 = [1, 2, 3, 4, 5];
var l3 = l4.map((e) {
return e * 3;
}).toList();
print("l3 = $l3");
// 2.where方法,就是判断,条件选择
var l5 = l4.where((element) {
return element % 2 == 0;
}).toList();
print("l5 = $l5"); //[2,4]
// 3.any方法,就是只要List里面有一个满足条件就返回true
// 下面这种写法箭头函数,只有一行代码可以简写,和swift很像
var l6 = l4.any((element) => element % 2 == 0);
print("l6 = $l6"); //true
// 4.every方法,就是要List里面所以元素都满足条件就返回true, 有一个不满足就返回false
var l7 = l4.every((element) {
return element % 2 == 0;
});
print("l7 = $l7"); //false
}
// Set 的大部分属性和方法是和List是一样的
void aboutSet() {
var s = new Set();
s.add("香蕉");
s.add("香蕉");
s.add("苹果");
s.add("苹果");
print("s = $s"); //{香蕉, 苹果}
// 转换成List
var l = s.toList();
print(l); //[香蕉, 苹果]
}
// Map 的映射
void aboutMap() {
var person = {"name": "张三", "age": 20};
var m = new Map();
m["name"] = "李四";
print(person); //{name: 张三, age: 20}
print(m); //{name: 李四}
print(person.keys.toList()); //[name, age]
// 使用forEach遍历
person.forEach((key, value) {
print("person[$key] = $value");
});
}
网友评论