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