List的操作
// list属性
List l = ["苹果", "西瓜", "哈密瓜"];
print(l.length); // 输出长度 3
print(l.isEmpty); // 是否为空 false
print(l.isNotEmpty); // 是否不为空 true
print(l.reversed); // 数组反转 (哈密瓜, 西瓜, 苹果)
var myList = l.reversed.toList(); // 集合
print(myList); // [哈密瓜, 西瓜, 苹果]
// List方法
myList.add("猕猴桃"); // 增加一个数据
myList.addAll(["桃子", "葡萄"]); //拼接数据
print(myList); // [哈密瓜, 西瓜, 苹果, 猕猴桃, 桃子, 葡萄]
print(myList.indexOf("西瓜")); // 查找数据 找不到返回-1
myList.remove("苹果"); // 移除数据
print(myList); // [哈密瓜, 西瓜, 猕猴桃, 桃子, 葡萄]
myList.fillRange(1, 2, "西瓜1"); // 修改
print(myList); // [西瓜1, 西瓜, 猕猴桃, 桃子, 葡萄]
myList.insert(1, "荔枝"); // 插入数据
print(myList); // [哈密瓜, 荔枝, 西瓜1, 猕猴桃, 桃子, 葡萄]
myList.insertAll(3, ["西瓜2", "西瓜3"]); // 插入多个数据
print(myList);
print(myList.join("-")); // "转换为字符串用-分割(也可以使用别到)"
var str = "西瓜-哈密瓜-橘子";
print(str.split("-")); // 将字符串转换为数组
Set
Set没有顺序且不能重复的集合,无法提供索引获取值
var s = new Set();
s.add("苹果");
s.add("香蕉");
s.add("香蕉");
print(s); // {苹果, 香蕉}
print(s.toList()); // 转换为list数组 [苹果, 香蕉]
Set去重
List l = ["苹果", "西瓜", "哈密瓜", "哈密瓜", "西瓜"];
var s = new Set();
s.addAll(l);
print(s); // {苹果, 西瓜, 哈密瓜}
Map的定义
Map m1 = {
"name": "panghu",
"age": 10
};
var m2 = {
"name": "panghu",
"age": 10
};
var m3 = new Map();
m3["name"] = "panghu";
m3["age"] = 10;
print("$m1 $m2 $m3");
Map的基本操作
Map m = {
"name": "panghu",
"age": 10
};
print(m.keys); // (name, age)
print(m.keys.toList()); // [name, age]
print(m.isEmpty); // 判断是否为空
print(m.isNotEmpty); // 判断是否不为空
m.addAll({"work": "code"}); // 添加数据
print(m); // {name: panghu, age: 10, work: code}
m.remove("work"); // 移除
print(m); // {name: panghu, age: 10}
其他方法
List l = ["苹果", "西瓜", "哈密瓜"];
Map m = {
"name": "panghu",
"age": 10,
};
// one
l.forEach((v) => print("$v"));
// two
l.forEach((v){
print(v);
});
// Three
m.forEach((k, v){
print("$k --- $v");
});
// 所以map让他们的数乘以2
List n = [1, 2, 3];
var o = n.map((v){
return v * 2;
});
print(o); // (2, 4, 6)
List num = [1, 2, 3, 4, 5, 6, 7];
var d = num.where((v){
return v > 5;
});
print(d); // (6, 7)
var t = num.any((v){ // 返回true或false
return v > 5;
});
print(t); // true