5.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every

时间:2019-11-21
本文章向大家介绍5.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every,主要包括5.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.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

1)List里面的属性

void main(){

//List里面的属性:
    List myList=['香蕉','苹果','西瓜'];
    print(myList.length);
    print(myList.isEmpty);
    print(myList.isNotEmpty);
    print(myList.reversed);  //对列表倒序排序,输出为元组
    var newMyList=myList.reversed.toList();
    print(newMyList);

}

2)List里面的方法:

void main(){

    List myList=['香蕉','苹果','西瓜'];
    myList.add('桃子');   //增加数据  增加一个

    myList.addAll(['桃子','葡萄']);  //拼接数组

    print(myList);

    print(myList.indexOf('苹x果'));    //indexOf查找数据 查找不到返回-1  查找到返回索引值


    myList.remove('西瓜');

    myList.removeAt(1);

    print(myList);

}

 

void main(){

    List myList=['香蕉','苹果','西瓜'];

    myList.fillRange(1, 3,'aaa');  //修改
    
    print(myList)

}
void main(){

    List myList=['香蕉','苹果','西瓜'];

    myList.insert(1,'aaa');      //插入  一个

    myList.insertAll(1, ['aaa','bbb']);  //插入 多个

    print(myList);


}
void main(){

    List myList=['香蕉','苹果','西瓜'];

    var str=myList.join('-');   //list转换成字符串

    print(str);

    print(str is String);  //true

}
void main(){

    var str='香蕉-苹果-西瓜';

    var list=str.split('-'); //字符串转换成List

    print(list);

    print(list is List); //Ture

}

2.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());

}

3.Maps

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

    常用属性:

        keys                  获取所有的key值

        values               获取所有的value值

        isEmpty            是否为空

        isNotEmpty      是否不为空

    常用方法:

        remove(key)               删除指定key的数据

        addAll({...})                 合并映射  给映射内增加属性

        containsValue            查看映射内的值  返回true/false

        forEach   

        map

        where

        any

        every

1).常用属性

void main(){

    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    print(person.keys.toList());   //[name, age, sex]
    print(person.values.toList()); //[张三, 20, 男]
    print(person.isEmpty);         //false
    print(person.isNotEmpty);      //true


}

2).常用方法

void main(){

    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    person.addAll({
      "work":['敲代码','送外卖'],
      "height":160
    });

    print(person);

    person.remove("sex");
    print(person);

    print(person.containsValue('张三'));
   }

}

  

3.forEach  map   where   any  every

1)forEach

循环元素

void main(){
       List myList=['香蕉','苹果','西瓜'];
             for(var i=0;i<myList.length;i++){
        print(myList[i]);
      }
}
void main(){
      List myList=['香蕉','苹果','西瓜'];      
      for(var item in myList){
        print(item);
      }

}
void main(){
       List myList=['香蕉','苹果','西瓜'];
      // myList.forEach((key,value){
      //   print('$key---$value');
      // });

      myList.forEach((value){
          print("$value");
      });

}

2)map  

修改数组的数据 map

void main(){
   List myList=[1,3,4];

   List newList=new List();

   for(var i=0;i<myList.length;i++){

      newList.add(myList[i]*2);
   }
   print(newList);   //[2, 6, 8]

   

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

}

3)where

查找数组

void main(){
     List myList=[1,3,4,5,7,8,9];

    var newList=myList.where((value){
        return value>5;
    });
    print(newList.toList());  //[7, 8, 9]

}

4)any

只要有满足条件就返回true

void main(){
   List myList=[1,3,4,5,7,8,9];

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

}

5)every

每一个都满足条件返回true 否则返回false

void main(){
    List myList=[1,3,4,5,7,8,9];
    var f=myList.every((value){   //每一个都满足条件返回true  否则返回false
       return value>5;
    });
    print(f);  //false

}

  

针对Set

void main(){
      var s=new Set();

      s.addAll([1,222,333]);

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

}

针对map

void main(){
       Map person={
          "name":"张三",
          "age":20
        };

        person.forEach((key,value){            
            print("$key---$value");
        });

}  

  

  

  

  

  

  

  

  

  

  

  

  

  

原文地址:https://www.cnblogs.com/The-Chao/p/11906198.html