04 Dart基础 List,Set,Map详解

一 List


/*
List里面常用的属性和方法:

    常用属性:
        length          长度
        reversed        翻转
        isEmpty         是否为空
        isNotEmpty      是否不为空
    常用方法:  
        add         增加
        addAll      拼接数组
        indexOf     查找  传入具体值
        remove      删除  传入具体值
        removeAt    删除  传入索引值
        fillRange   修改   
        insert(index,value);            指定位置插入    
        insertAll(index,list)           指定位置插入List
        toList()    其他类型转换成List  
        join()      List转换成字符串
        split()     字符串转化成List
        forEach   
        map
        where
        any
        every

*/

// 创建List
  var list1 = ["Dog", "Cat", "Tiger"];
  print(list1);
  // 添加元素
  list1.add("Fox");
  list1.add("Snake");
  // 是否为空
  print(list1.isEmpty);
  print(list1.isNotEmpty);

  // 反转List
  var newList1 = list1.reversed.toList();
  print(newList1);

  // 查找元素 找到返回索引,找不到返回-1
  var index_fox = list1.indexOf("Fox");
  print(index_fox);

  print(list1);
  //  删除元素
  list1.remove("Fox");
  print(list1);
  // 删除指定索引的元素
  list1.removeAt(0);
  // 删除最后一个元素
  list1.removeLast();
  // 插入元素
  list1.insert(0, "elephant");
  print(list1);
  // 添加多个
  list1.addAll(["Dog", "Snake", "Fox"]);
  print(list1);
  // 拼接起来
  var join_str = list1.join("-");
  print(join_str);
  // 分割出来
  var list2 = join_str.split("-");
  print(list2);

二 Set

//Set 

//用它最主要的功能就是去除数组重复内容

//Set是没有顺序且不能重复的集合,所以不能通过索引去获取值

// 创建List
  var set1 = new Set();
  set1.add("apple");
  set1.add("orange");
  set1.add("apple");
  // 打印结果  {apple, orange}
  print(set1);

  // 数组去重方法
  var list = ["Dog", "Cat", "Tiger", "Dog", "Cat", "Tiger"];
  var set2 = new Set();
  set2.addAll(list);
  print(set2);
  // 转为新数组
  var list1 = set2.toList();
  print(list1);

三 Map

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

    常用属性:
        keys            获取所有的key值
        values          获取所有的value值
        isEmpty         是否为空
        isNotEmpty      是否不为空
    常用方法:
        remove(key)     删除指定key的数据
        addAll({...})   合并映射  给映射内增加属性
        containsValue   查看映射内的值  返回true/false
        forEach   
        map
        where
        any
        every


*/


 // 创建一个map
  var map1 = {"name": "Leonardo", "age": 99};
  // 获取所有的键值
  print(map1.keys.toList());
  // 获取所有的value
  print(map1.values.toList());
  // 是否为空 不为空
  print(map1.isEmpty);
  print(map1.isNotEmpty);
  //删除指定key 的数据
  map1.remove("name");
  // 新增
  map1.addAll({
    "sex": "male",
    "work": ["Manager", "Doctor"]
  });
  print(map1);

四 for each ,every等方法

 // List 的三种循环方式
  List list1 = ["apple", "orange", "Lemon", "BlueBerry"];
  // 1
  for (int idx = 0; idx < list1.length; idx++) {
    print(list1[idx]);
  }
  // 2
  for (var item in list1) {
    print(item);
  }
  // 3
  list1.forEach((element) {
    print(element);
  });

  // where 的使用 把满足条件的返回一个新的集合
  List list2 = [13, 8, 5, 4, 2];

  var list3 = list2.where((value) {
    return value > 5;
  });
  print(list3);

  // any  只要List里面有一个满足条件就返回true
  var flag1 = list2.any((element) {
    return element > 5;
  });
  // 打印结果 true
  print(flag1);

  //every 必须List 里面的每一个都满足条件就会返回true

  var flag2 = list2.every((element) {
    return element > 5;
  });
  // 打印结果 false
  print(flag2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值