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");
        });

}  

  

  

  

  

  

  

  

  

  

  

  

  

  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM