美文网首页
Dart基础(二),List、set、map

Dart基础(二),List、set、map

作者: 徘徊0_ | 来源:发表于2020-03-18 17:12 被阅读0次
    一、List

    List 常用方法如下,一般都可以通过名字来判断其含义,比如 add、remove.....


    image.png

    下面记录一下不常用的方法:

    • fillRange List范围修改方法,如下
    List<String> stringList=List<String>();
    stringList.add('s1');
    stringList.add('s2');
    stringList.add('s3');
    stringList.add('s4');
    print('修改前: $stringList');
    
    stringList.fillRange(0, 2,'a1');//代表将第 0、1 位数据修改为‘a1’
    
    print('修改后: $stringList');
    
    image.png
    • join 将List以"xx"分割开并转化为String,如下
    List<String> stringList=List<String>();
      stringList.add('s1');
      stringList.add('s2');
      stringList.add('s3');
      stringList.add('s4');
      var str=stringList.join(',');//join ,将List以","分割开
    
      print(str);
    
    join.png
    • split 切割字符串
    var arr='s1-s2-s3';
    //将字符串,通过‘-’ 切割为List
    List<String> arrList=arr.split('-');
    
    print(arrList);
    
    二、Set

    Set: 无序,且 不重复 的集合(不能通过索引来取值,主要功能去除数组中重复内容)

    1,不重复 特性
    • set 添加重复数据


      set不重复.png
    • 使用set去除重复数据

    List sList = List();
      sList..add('s1')
        ..add('s2')
        ..add('s1')
        ..add('s3');
      print('List 数据为:$sList');
      //使用Set去除重复数据
      Set set=new Set();
      set.addAll(sList);//将List中数据添加到set中来
      print('set数据为: $set');
    
      sList=set.toList(); //将set转换为List
      print('经过Set去重后List 数据为:$sList');
    
    image.png
    三、Map

    1,创建map有两种方式:

    //创建map方式1
    var m1={
      'm1-1':1,
      'm1-2':2
    };
    
    print('m1 = $m1');
    
    //创建map方式2
    var m2=new Map();
    m2['m2-1']=1;
    m2['m2-2']=3;
    print('m2 = $m2');
    

    2,map 常用方法、属性

    print('获取所有的key值:${m2.keys}');
    print('获取所有的value值:${m2.values}');
    print('Map不为空:${m2.isNotEmpty}');
    print('Map为空:${m2.isEmpty}');
    .....
    
    //添加数据,使用 addAll
    m2.addAll({
     'name':'zhangsan',
     'age':11
    });
    
    四、List、Set、Map 常见方法
    1,遍历
    • for循环、for in 方式
    • foreach方法
    //1,使用for循环遍历List
      List<String> stringList = List<String>();
      stringList.add('s1');
      stringList.add('s2');
      for (int i = 0; i < stringList.length; i++) {
        print('i = $i , 值为: ${stringList[i]}');
      }
    
      //2,for in 遍历
      for(var s in stringList) {
        print('for in 遍历List: $s');
      }
    
      //3,foreach
      stringList.forEach((s){
        print('foreach遍历List: $s');
      });
    
    image.png

    set 也可以使用 in foreach 方法遍历,如下:

    //set 遍历方法
      Set set = new Set();
      set..add('set1')..add('set2')..add('set3');
      for (var s in set) {
        print('Set 使用 in 遍历$s');
      }
      print('--------------------------');
    
      set.forEach((s) {
        print('Set 使用 forEach 遍历$s');
      });
      print('--------------------------');
      //只有一行,可以使用箭头函数代替
      set.forEach((value)=>print('Set 使用 forEach 遍历$value'));
    
    image.png

    Map集合 也可以使用 foreach 方法遍历,如下:

    Map map=new Map();
    map['name']='zhangsan';
    map['name2']='zhangsan2';
    map.forEach((key,value){
      print('key = $key , value = $value');
    });
    
    image.png
    2,map 方法: 用于修改原集合数据

    例如:

    List<String> stringList = List<String>();
      stringList.add('old1');
      stringList.add('old2');
      print(stringList);
      //使用 List.map 方法,修改集合中的数据
      var newList=stringList.map((value){
        //在原集合基础上,每一个value 都加 "aa";
        return value+' aa';
      });
    
      print('map方法调用后:$newList');
    
    image.png
    3,where :根据条件,生成新的集合

    例如:筛选出大约3的数据,生成一个新的集合

     List intList=[1,2,3,4,5,6,7];
      //where 根据条件,生成新的集合
      var newIntList=intList.where((value){
        return value>3;
      });
      print(newIntList);//输出 (4, 5, 6, 7)
    
    4,any :有一个满足条件就返回 true
      List intList = [1, 2, 3, 4, 5, 6, 7];
    //any :有一个满足条件就返回 true
      var any = intList.any((value) {
        return value > 1;//如果满足一个大于 1 的value,就返回true
      });
      print(any);// true
    
    5, every : 每一个值都满足该条件,则返回true
      List intList = [1, 2, 3, 4, 5, 6, 7];
     //every : 每一个值都满足该条件,则返回true
      var every = intList.every((value) {
        return value > 1;
      });
      print(every);// false 
    

    注:set、List、Map 都包含上述方法,用法基本一致

    相关文章

      网友评论

          本文标题:Dart基础(二),List、set、map

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