Dart 集合类型 List Set Map 详解

1. List (列表对象)常用属性

void main() {
    
    
  List myList = ['香蕉', '苹果', '西瓜'];
  print(myList.length); //3
  print(myList.isEmpty); //false
  print(myList.isNotEmpty); //true
  //翻转
  print(myList.reversed); //(西瓜, 苹果, 香蕉)
  var newMyList = myList.reversed.toList();
  print(newMyList); //[西瓜, 苹果, 香蕉]
}

2. List (列表对象)常用方法

void main() {
    
    
  List myList = ['香蕉', '苹果', '西瓜'];
  // 增加数据,增加一个
  myList.add('桃子'); //[香蕉, 苹果, 西瓜, 桃子]
  print(myList);
  // 拼接数组
  myList.addAll(['葡萄', '提子']); //[香蕉, 苹果, 西瓜, 桃子, 葡萄, 提子]
  print(myList);
}
void main() {
    
    
  List myList = ['香蕉', '苹果', '西瓜'];
  // indexOf 查找数据索引值
  print(myList.indexOf('香蕉')); //0
  print(myList.indexOf('葡萄')); //-1
}
void main() {
    
    
  //删除数据
  List myList_1 = ['香蕉', '苹果', '西瓜'];
  List myList_2 = ['香蕉', '苹果', '西瓜'];
  myList_1.remove('苹果');
  print(myList_1); //[香蕉, 西瓜]
  myList_2.removeAt(1);
  print(myList_2); //[香蕉, 西瓜]
}
void main() {
    
    
  //修改指定位置的数据
  List myList_1 = ['香蕉', '苹果', '西瓜'];
  myList_1.fillRange(1, 2, 'aaa');
  print(myList_1); //[香蕉, aaa, 西瓜]
  List myList_2 = ['香蕉', '苹果', '西瓜'];
  myList_2.fillRange(1, 3, 'bbb');
  print(myList_2); //[香蕉, bbb, bbb]
}
void main() {
    
    
  //在指定位置插入数据
  List myList_1 = ['香蕉', '苹果', '西瓜'];
  myList_1.insert(1, 'aaa');
  print(myList_1); //[香蕉, aaa, 苹果, 西瓜]
  List myList_2 = ['香蕉', '苹果', '西瓜'];
  myList_2.insertAll(1, ['aaa', 'bbb']);
  print(myList_2); //[香蕉, aaa, bbb, 苹果, 西瓜]
}
void main() {
    
    
  // List 转换成字符串
  List myList = ['香蕉', '苹果', '西瓜'];
  var str = myList.join('-');
  print(str); //香蕉-苹果-西瓜
  print(str is String); //true
}
void main() {
    
    
  // 字符串转换成 List
  var str = '香蕉-苹果-西瓜';
  var myList = str.split('-');
  print(myList); // [香蕉, 苹果, 西瓜]
  print(myList is List); // true
}

3. Set 集合对象

Set 用它最主要的功能就是去除数组重复内容,Set 是没有顺序且不能重复的集合,所以不能通过索引去获取值

void main() {
    
    
  var s = new Set();
  s.add('香蕉');
  s.add('苹果');
  s.add('苹果');
  print(s); // {香蕉, 苹果}
  print(s.toList()); // [香蕉, 苹果]
}
void main() {
    
    
  // 数组去重
  List myList = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '香蕉', '苹果'];
  var s = new Set();
  s.addAll(myList);
  print(s); // {香蕉, 苹果, 西瓜}
  print(s.toList()); // [香蕉, 苹果, 西瓜]
}

4. Maps 映射对象

映射(Maps)是无序的键值对

void main() {
    
    
  var person = {
    
    "name": "张三", "age": 20};
  print(person); //{name: 张三, age: 20}
  var m = new Map();
  m['name'] = '李四';
  m['age'] = 20;
  print(m); //{name: 李四, age: 20}
}

4.1 Maps 映射对象常用属性

void main() {
    
    
  Map person = {
    
    "name": "张三", "age": 20};
  print(person.keys); //(name, age)
  print(person.values); //(张三, 20)
  print(person.keys.toList()); //[name, age]
  print(person.values.toList()); //[张三, 20]
  print(person.isEmpty); // false
  print(person.isNotEmpty); // true
}

4.2 Maps 映射对象常用方法

void main() {
    
    
  Map person = {
    
    "name": "张三", "age": 20, "sex": "男"};
  person.addAll({
    
    
    "work": ['敲代码', '送外卖'],
    "height": 160
  });
  print(person); // {name: 张三, age: 20, sex: 男, work: [敲代码, 送外卖], height: 160}
}
void main() {
    
    
  Map person = {
    
    "name": "张三", "age": 20, "sex": "男"};
  person.remove("sex");
  print(person); // {name: 张三, age: 20}
} 
void main() {
    
    
  Map person = {
    
    "name": "张三", "age": 20, "sex": "男"};
  print(person.containsValue('张三')); // true
  print(person.containsKey('name')); // true
}
void main() {
    
    
  List myList = ['香蕉', '苹果', '西瓜'];
  for (var item in myList) {
    
    
    print(item);
    // 香蕉
    // 苹果
    // 西瓜
  }
}
void main() {
    
    
  List myList = ['香蕉', '苹果', '西瓜'];
  myList.forEach((value) {
    
    
    print("$value");
  });
  // 香蕉
  // 苹果
  // 西瓜
}
void main() {
    
    
  List myList = [1, 3, 4];
  var newList = myList.map((value) {
    
    
    return value * 2;
  });
  print(newList); // (2, 6, 8)
  print(newList.toList()); // [2, 6, 8]
}
void main() {
    
    
  List myList = [1, 3, 4, 5, 7, 8, 9];
  var newList = myList.where((value) {
    
    
    return value > 5;
  });
  print(newList); // (7, 8, 9)
  print(newList.toList()); // [7, 8, 9]
}
void main() {
    
    
  List myList = [1, 3, 4, 5, 7, 8, 9];
  // 只要集合里面有满足条件的就返回 true
  var f = myList.any((value) {
    
    
    return value > 5;
  });
  print(f); // true
}
void main() {
    
    
  List myList = [1, 3, 4, 5, 7, 8, 9];
  // 每一个都满足条件返回 true,否则返回 false
  var f = myList.every((value) {
    
    
    return value > 5;
  });
  print(f); // false
}
void main() {
    
    
  var s = new Set();
  s.addAll([1, 22, 333]);
  s.forEach((value) => print(value));
  // 1
  // 22
  // 333
}
void main() {
    
    
  Map person = {
    
    "name": "张三", "age": 20};
  person.forEach((key, value) {
    
    
    print("$key---$value");
    // name---张三
    // age---20
  });
}

Guess you like

Origin blog.csdn.net/qq_43712409/article/details/121302116