Wesukilaye

Your choices please me, for now


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Dart list

发表于 2019-08-08 分类于 Dart
本文字数: 5.1k 阅读时长 ≈ 5 分钟
定义
1
2
3
4
5
6
7
8
9
var list1 = List();// 不限定长度,不限定类型,可添加任意类型的数据
List list2 = List();// 不限定长度,不限定类型,可添加任意类型的数据
List list3 = List(2);//限定了长度为2 越界会报错,不限定类型,可添加任意类型的数据
var list4 = [1,2,3];//初始就赋值了,限定了长度,限定了类型,只能是int
var list5 = [2,'3',true];//初始就赋值了,限定了长度,限定了类型,任意位置可用任意类型替换
List list6 = ['a',2,'b',false];//初始就赋值了,限定了长度,限定了类型,任意位置可用任意类型替换
var list7 = ["a","b"];//String类型
List list8 = ['a','b','3'];
List list9 = new List(2);
常用属性
1
2
3
4
5
6
7
8
9
10
List list10 = List();
list10.add('aaa');
list10.add('bbb');
list10.add('ccc');
print(list10.length);//3 长度
print(list10.isEmpty);//false 是否为空
print(list10.isNotEmpty);//true 是否不为空
print(list10.reversed);//(ccc, bbb, aaa) 返回一个List的倒序排列的Iterable 不改变原List
print(list10.first);//aaa 第一个元素
print(list10.last);//ccc 最后一个元素
常用方法
  • add() 添加一个元素到List末尾

  • addAll() 两个List合并

    1
    2
    3
    4
    5
    6
    7
    8
     List list10 = List();
    list10.add('aaa');
    list10.add('bbb');
    List list11 = List();
    list11.add('ccc');
    list11.add('ddd');
    list11.addAll(list10);
    print(list11);//[ccc, ddd, aaa, bbb]
  • 插入

    • insert(index,element) 在指定index处插入某个值

      1
      2
      3
      4
      5
      6
      7
      8
      List list12 = List();
      list12.add(0);
      list12.add(1);
      list12.add(2);
      list12.add(3);
      print(list12);//[0, 1, 2, 3]
      list12.insert(1, 5); //指定索引位置 插入值,其余顺延
      print(list12);// [0, 5, 1, 2, 3]
    • insertAll(index,list) 在指定index处插入list

  • 删除

    • remove(obj) 删除具体的元素
    • removeAt(index) 删除索引位置元素
    • removeLast()删除末尾元素
    • removeRange(start,end) 范围删除
    • removeWhere() 根据条件删除
  • clear() 清空数组

  • setRange(startIndex,endIndex,list) 范围修改List的值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
       List list13 = List();
    list13.add('aaa');
    list13.add('bbb');
    list13.add('ccc');
    list13.add('ddd');
    // print(list13);// [aaa, bbb, ccc, ddd]
    List list14 = List();
    list14.add("111");
    list14.add("222");
    list14.add("333");
    list14.add("444");
    list14.add("555");
    list14.add("666");
    list13.setRange(0,3, list14);//范围修改,从list14取出0 1 2位置的值,修改list13对应0 1 2位置的值,0-3含头不含尾,start和end相同,则不变。start和end任何一个超出list13 list14的角标 则报错。
    //print(list13);//[111, 222, ccc, ddd]
  • replaceRange(start,end,list)范围替换 含头不含尾

    1
    2
    3
    4
    5
    6
    7
    8
    List list20 = List();
    list20.add(0);
    list20.add(1);
    list20.add(2);
    list20.add(3);
    print(list20);//[0, 1, 2, 3]
    list20.replaceRange(1, 3, [5,6,7,8]);//范围替换 含头不含尾
    print(list27);//[0, 5, 6, 7, 8, 3]
  • retainWhere(()=>(bool)) 根据条件筛选元素

    1
    2
    3
    4
    5
    6
    7
    8
       List list20 = List();
    list20.add(0);
    list20.add(1);
    list20.add(2);
    list20.add(3);
    print(list20);//[0, 1, 2, 3]
    list20.retainWhere((element)=>(element>2)); //根据条件保留住元素
    //print(list20);//[3, 4]
  • firstWhere((element)=>(bool)) 返回第一个满足条件的元素(不是元素的index)

    1
    2
    3
    4
    5
    6
    7
       List list21 = [1, 2, 3, 4, 5];
    int result = list21.firstWhere((element)=>(element>2));//返回满足条件的第一个元素
    //int result1 = list21.firstWhere((element)=>(element>44));//返回满足条件的第一个元素,不满足 报错
    int result2 = list21.firstWhere((element)=>(element>44),orElse: ()=>(10));//返回满足条件的第一个元素,不满足 返回orElse方法的返回值
    //print(result7);//3
    //print(result8);//报错
    //print(result9);//10
  • forEach() List遍历每个元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       List list22 = [3, 4, 1, 2, 5];
    list22.forEach((element){
    //遍历每个元素 此时不可add或remove 否则报错 但可以修改元素值,
    element += 1;
    //print(element);//依次输出:4 5 2 3 6
    list22[3]=0;//直接修改list对应index的值
    list22[0]=0;
    });
    //print(list22);// [0, 4, 1, 0, 5]

    //for List遍历每个元素
    for(var x in list22){
    print(x);//0 4 1 0 5
    }
  • map() 遍历现有List的每个元素,并做处理,返回一个新的Iterable

    1
    2
    3
    4
    5
       List list23 = [3, 4, 1, 2, 5];
    Iterable result1 = list23.map((e)=>(e>2?"a":"b"));//用指定方法对每个元素做操作,将结果组成一个新的Iterable
    //print(result1);//(a, a, b, b, a)
    Iterable result2 = list23.map((e)=>(e>2));
    //print(result2);//(true, true, false, false, true)
  • reduce((a,b)=>(某种操作)) 用指定的方法对元素做连续操作,将结果返回

    1
    2
    3
    4
    5
    List list24 = [3, 4, 1, 2, 5];
    int result1 = list24.reduce((a,b)=>(a+b));//3+4+1+2+5 用指定的方法对元素做连续操作,将结果返回
    //print(result1);//15
    int result2 = list24.reduce((a,b)=>(a*b));//3*4*1*2*5 用指定的方法对元素做连续操作,将结果返回
    //print(result2);//120
  • toSet() 将List转为Set 去除后面重复的元素

    1
    2
    3
    List list25 = [3, 4, 1, 2, 5,2,3,6];
    Set result1 = list25.toSet();//将list转为set,将后面重复的都去掉
    //print(result1);//{3, 4, 1, 2, 5, 6}
  • asMap() 将list转为map

    1
    2
    3
    4
    5
    6
    7
    8
    9
       List list26 = List();
    list26.add("aaa");
    list26.add("bbb");
    list26.add("ccc");
    list26.add("ddd");
    list26.add("eee");
    //print(list26);// [aaa, bbb, ccc, ddd, eee]
    Map map = list26.asMap();//list转为map key为index value为list的值
    //print(map);//{0: aaa, 1: bbb, 2: ccc, 3: ddd, 4: eee}
  • join(“-“) 用指定的字符将List中每个元素都连接起来,返回一个字符串

    1
    2
    3
       List list27 = [3, 4, 1, 2, 5];
    String result1 = list27.join("-");//用指定的字符将每个元素都连接起来,返回一个字符串
    //print(result1);//3-4-1-2-5
  • 本文作者: Mr.Zhao
  • 本文链接: https://wesukilayezcy.github.io/2019/08/08/Dart-数值类型/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
Dart list
Dart 字符串
Dart map
-------------本文结束感谢您的阅读-------------
  • 文章目录
  • 站点概览
Wesukilaye

Wesukilaye

熟练使用iOS Objective-c,Swift. 了解Python爬取网络数据,深入研究移动端开发,目前正在学习Flutter
23 日志
4 分类
16 标签
RSS
GitHub E-Mail bilibili
Links
  • Jacksu
  1. 1. 定义
  2. 2. 常用属性
  3. 3. 常用方法
© 2019 Wesukilaye | 62k | 57 分钟
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0