美文网首页
Flutter学习笔记1.4 Dart基础(List Set M

Flutter学习笔记1.4 Dart基础(List Set M

作者: 艾伦oy | 来源:发表于2022-04-22 00:30 被阅读0次

    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 //只要集合里面有满足条件的就返回true
    every/每一个都满足条件返回true 否则返回false

    示例代码:

    void main() {
      List myList = ['香蕉', '苹果', '西瓜'];
      print(myList[1]);
    
      var list = new List(); //新版本没法使用
      list.add('111');
      list.add('222');
      print(list);
    
    //List里面的属性:
      List myList = ['香蕉', '苹果', '西瓜'];
      print(myList.length);
      print(myList.isEmpty);
      print(myList.isNotEmpty);
      print(myList.reversed); //对列表倒序排序
      var newMyList = myList.reversed.toList();
      print(newMyList);
    
    //List里面的方法:
    
      List myList = ['香蕉', '苹果', '西瓜'];
      myList.add('桃子'); //增加数据  增加一个
    
      myList.addAll(['桃子', '葡萄']); //拼接数组
    
      print(myList);
    
      print(myList.indexOf('苹x果')); //indexOf查找数据 查找不到返回-1  查找到返回索引值
    
      myList.remove('西瓜');
    
      myList.removeAt(1);
    
      print(myList);
    
      List myList = ['香蕉', '苹果', '西瓜'];
    
      myList.fillRange(1, 2, 'aaa'); //修改
    
      myList.fillRange(1, 3, 'aaa');
    
      myList.insert(1, 'aaa'); //插入  一个
    
      myList.insertAll(1, ['aaa', 'bbb']); //插入 多个
    
      print(myList);
    
      List myList = ['香蕉', '苹果', '西瓜'];
    
      var str = myList.join('-'); //list转换成字符串
    
      print(str);
    
      print(str is String); //true
    
      var str = '香蕉-苹果-西瓜';
    
      var list = str.split('-');
    
      print(list);
    
      print(list is List);
    }
    
    

    Set集合

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

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

    Maps集合

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

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

    示例代码:

    void main() {
      Map person = {"name": "张三", "age": 20};
      var m = new Map();
      m["name"] = "李四";
      print(person);
      print(m);
    
    //常用属性:
      Map person = {"name": "张三", "age": 20, "sex": "男"};
      print(person.keys.toList());
      print(person.values.toList());
      print(person.isEmpty);
      print(person.isNotEmpty);
    //常用方法:
      Map person = {"name": "张三", "age": 20, "sex": "男"};
      person.addAll({
        "work": ['敲代码', '送外卖'],
        "height": 160
      });
    
      print(person);
    
      person.remove("sex");
      print(person);
    
      print(person.containsValue('张三'));
    }
    

    操作符 forEach,map, where ,any, every

    void main() {
      List myList = ['香蕉', '苹果', '西瓜'];
    
      for (var i = 0; i < myList.length; i++) {
        print(myList[i]);
      }
    
      for (var item in myList) {
        print(item);
      }
    
      myList.forEach((value) {
        print("$value");
      });
    
      List myList = [1, 3, 4];
    
      List newList = new List();
    
      for (var i = 0; i < myList.length; i++) {
        newList.add(myList[i] * 2);
      }
      print(newList);
    
      List myList = [1, 3, 4];
      var newList = myList.map((value) {
        return value * 2;
      });
      print(newList.toList());
    
      List myList = [1, 3, 4, 5, 7, 8, 9];
    
      var newList = myList.where((value) {
        return value > 5;
      });
      print(newList.toList());
    
      List myList = [1, 3, 4, 5, 7, 8, 9];
    
      var f = myList.any((value) {
        //只要集合里面有满足条件的就返回true
    
        return value > 5;
      });
      print(f);
    
      List myList = [1, 3, 4, 5, 7, 8, 9];
    
      var f = myList.every((value) {
        //每一个都满足条件返回true  否则返回false
    
        return value > 5;
      });
      print(f);
    
      // set
    
      var s = new Set();
    
      s.addAll([1, 222, 333]);
    
      s.forEach((value) => print(value));
    
      //map
    
      Map person = {"name": "张三", "age": 20};
    
      person.forEach((key, value) {
        print("$key---$value");
      });
    }
    

    需求:使用forEach打印下面List里面的数据*/

      List list=['苹果','香蕉','西瓜'];
      list.forEach((value){
        print(value);
      });
      list.forEach((value)=>print(value));
    
      //注意和方法的区别: 箭头函数内只能写一条语句,并且语句后面没有分号(;)
      list.forEach((value)=>{
        print(value)
      });
    

    需求:修改下面List里面的数据,让数组中大于2的值乘以2*/

      List list=[4,1,2,3,4];
      var newList=list.map((value){
          if(value>2){
            return value*2;
          }
          return value;
    
      });
      print(newList.toList());
    //另外一种写法
       var newList=list.map((value)=>value>2?value*2:value);
       print(newList.toList());
    

    相关文章

      网友评论

          本文标题:Flutter学习笔记1.4 Dart基础(List Set M

          本文链接:https://www.haomeiwen.com/subject/logjertx.html