Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every

List基础用法

复制代码
  var list1 = ["西瓜", "苹果", "香蕉", true, 0];
  var list2 = <String>["西瓜", "苹果", "香蕉"];
  List list3 = ["西瓜", "苹果", "香蕉"];
  list3.add("草莓");
  print(list3);
  print(list3.length);

  //创建一个固定长度的List
  var list4 = List.filled(2, "");
  list4[0] = "葡萄";
  print(list4);
  print(list4.length);
  var list5 = list4.reversed.toList();

  list5.add("桃子");
  list5.addAll(["桃子", "提子"]); //拼接数组
  //List里面的属性:
  print(list4.isEmpty);
  print(list4.isNotEmpty);
  print(list4.reversed);
  print(list5);

  print(list5.indexOf("桃子")); //indexOf查找数据,查找不到返回-1,查找到返回索引

  list5.remove("提子"); //根据Value删除
  list5.removeAt(3); //根据索引删除
  print(list5);

  List list6 = ["西瓜", "苹果", "香蕉"];
  list6.fillRange(0, 1, "aaa"); //根据索引修改
  print("list6 = $list6"); //list6 = [aaa, 苹果, 香蕉]

  list6.fillRange(1, 3, "aaa"); //根据索引修改
  print("list6 = $list6"); //list6 = [aaa, aaa, aaa]

  List list7 = ["西瓜", "苹果", "香蕉"];

  list7.insert(1, "火龙果"); //插入一个
  list7.insertAll(1, ["猕猴桃", "芒果"]); //插入多个
  print("list7 = $list7"); //list7 = [西瓜, 猕猴桃, 芒果, 火龙果, 苹果, 香蕉]

  List list8 = ["西瓜", "苹果", "香蕉"];
  var join = list8.join("-"); //list转换成字符串
  print("join = $join"); //join = 西瓜-苹果-香蕉

  var str = "西瓜-苹果-香蕉";
  var split = str.split("-"); //字符串转换成list
  print("split = $split"); //split = [西瓜, 苹果, 香蕉]

Set基础用法

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

  var set = Set();
  set.add("苹果");
  set.add("西瓜");
  set.add("西瓜");
  print("set = $set"); //set = {苹果, 西瓜}
  print(set.toList()); //[苹果, 西瓜]

  //list去重
  List list9 = ["西瓜", "西瓜", "猕猴桃", "芒果", "猕猴桃", "芒果"];
  var set1 = Set();
  set1.addAll(list9);
  print("set1 = $set1"); //set1 = {西瓜, 猕猴桃, 芒果}
  var newList = set1.toList();
  print("newList = $newList"); //newList = [西瓜, 猕猴桃, 芒果]

map常用属性

复制代码
  var map = {"name": "张三", "age": 20, "sex": "男"};
  print("map = $map"); //map = {name: 张三, age: 20}
  var map1 = Map();
  map1["name"] = "李四";
  print("map1 = $map1"); //map1 = {name: 李四}

  print(map.keys.toList()); //[name, age, sex]
  print(map.values.toList()); //[张三, 20, 男]
  print(map.isEmpty); //是否为空       false
  print(map.isNotEmpty); //是否不为空   true

  map.addAll({
    "work": ["厨师", "司机"],
    "height": 20,
  });
  print(map); //{name: 张三, age: 20, sex: 男, work: [厨师, 司机], height: 20}

  map.remove("sex");
  print(map); //{name: 张三, age: 20, work: [厨师, 司机], height: 20}

  print(map.containsKey("work")); //true
  print(map.containsValue("张三")); //true

List遍历

复制代码
  List list10 = ["西瓜", "苹果", "香蕉"];
  for (int i = 0; i < list10.length; i++) {
    print(list10[i]);
  }
  //
  list10.forEach((value) {
    print(value);
  });

  List list11 = [1, 3, 4];
  var newList11 = list11.map((value) {
    return value * 2;
  });
  print(newList11); //(2, 6, 8)
  print(newList11.toList()); //[2, 6, 8]

  //筛选满足条件的数据
  var newList12 = list11.where((value) {
    return value > 2;
  });
  print(newList12); //(3, 4)

  //只要集合里面有满足条件的就返回true
  var isHas = list11.any((value) {
    return value > 2;
  });
  print(isHas); //true

  //每一个都要满足条件的就返回true,否则返回false
  var isHasValue = list11.every((value) {
    return value > 2;
  });
  print(isHasValue); //false

Set遍历

复制代码
 var set3 = Set();
  set3.addAll(["111", "222", "333"]);

  set3.forEach((value) => print(value));

  set3.forEach((value) {
    print(value);
  });

  //map
  Map map6 = {"name": "张三", "age": 20};
  map6.forEach((key,value){
    print("$key = $value"); //name = 张三   age = 20
  });

  print(map6.containsValue( "张三"));
相关推荐
安当加密19 分钟前
如何通过掌纹识别实现Windows工作站安全登录:从技术原理到企业级落地实践
windows·安全·1024程序员节
G_dou_36 分钟前
智能指针完全指南
windows·rust
无敌最俊朗@1 小时前
C++ STL中 std::list 的高频面试题与答案
开发语言·c++·list
想唱rap2 小时前
C++list类的模拟实现
linux·运维·服务器·数据结构·c++·windows·list
H_z_q24012 小时前
Python测试题1
windows
汤愈韬2 小时前
域网络,域环境搭建
windows·网络安全
傅里叶6 小时前
Flutter项目使用 buf.build
flutter
恋猫de小郭7 小时前
iOS 26 开始强制 UIScene ,你的 Flutter 插件准备好迁移支持了吗?
android·前端·flutter
yuanlaile8 小时前
Flutter开发HarmonyOS鸿蒙App商业项目实战已出炉
flutter·华为·harmonyos
namekong88 小时前
导入的 Google(Chrome)书签默认不会自动显示在「书签栏」,而是放在一个文件夹里。下面是详细步骤,帮你把 导入的全部书签添加到书签栏
windows