flutter ·

Dart中List数组的操作

Dart中List数组的操作

Dart中List的创建

和js中数组和其他语言中的List类似,分为可变长度和固定长度两种,与js不同的是List中的元素可为任意类型也可指定类型。


// 不限定长度,不限定类型,可添加任意类型的数据 var list1 = List(); dynamic list2 = List(); dynamic list3 =[]; List list4 = []; //指定类型,不限长度 List<int> list5 = []; //指定长度,不限类型 List list6 = List(2);//当像list6中增加超过两个元素时,会报错

常用属性

  • length 长度
  • reversed 翻转
  • isEmpty 是否为空
  • isNotEmpty 是否不为空

常用方法

  1. add
    add 方法是像一个List尾部添加数据,是否可以添加成功取决于创建List时的类型

  2. addAll

List a = [0];
List b = [1,2,3,4]
a.addAll(b);

需要注意的是添加进入的数据类型是否允许添加。
3. insert
向指定位置插入元素

List b = [1,2,3,4]
b.insert(1,9);
print(b);//[1,9,2,3,4]
  1. insertAll
    从指定的索引开始插入给定的值列表
 List a = [1,2,3];
 a.insertAll(0,[120,130]);
 print(a);//[120,130,1,2,3]
  1. indexOf
    查找指定元素所在位置
List a = [1,2,3,4,5];
print(a.indexOf(2));//输出1
  1. remove
    List.remove()函数删除列表中第一次出现的指定项。如果从列表中删除指定的值,则此函数返回true。
 List l = [1, 2, 3,4,5,6,7,8,9,1];
 print(l);//[1, 2, 3, 4, 5, 6, 7, 8, 9,1]
 bool res = l.remove(1);
 print(l);//[2, 3, 4, 5, 6, 7, 8, 9,1]
  1. removeAt
    删除指定索引处的值并将其返回
 List l = [1, 2, 3,4,5,6,7,8,9,1];
 print(l);//[1, 2, 3, 4, 5, 6, 7, 8, 9,1]
 int res = l.removeAt(1);
 print(res);//输出1
 print(l);//[1, 3, 4, 5, 6, 7, 8, 9,1]
  1. removeLast
    删除并在返回列表中的最后一个项目
 List l = [1, 2, 3,4,5,6,7,8,9,1];
 print(l);//[1, 2, 3, 4, 5, 6, 7, 8, 9,1]
 int res = l.removeLast();
 print(res);//输出1
 print(l);//[1, 2,3, 4, 5, 6, 7, 8, 9]
  1. removeRange
    删除指定范围内的元素,包括起始位置,但是不包括结束位置
 List l = [1, 2, 3,4,5,6,7,8,9,1];
 print(l);//[1, 2, 3, 4, 5, 6, 7, 8, 9,1]
 l.removeRange(0,3);
 print(l);//[4, 5, 6, 7, 8, 9,1]
  1. reversed
    以相反的顺序返回包含列表值的可迭代对象。

    List l = [1, 2, 3,4,5,6,7,8,9,1];
    l.reversed();
    print(l);//[1,9,8,7,6,5,4,3,2,1]
    
    1. replaceRange
      替换指定范围内的元素的值,就是list会首先删除第一个参数到第二个参数之前的元素,不包括第二个元素,然后将需要替换的list添加在第一个参数的位置
    List l = [1, 2, 3,4,5,6,7,8,9,1];
    l.replaceRange(0,3,[11,23,24]);
    print(l);//[11,23,24,4,5,6,7,8,9,1]
    
    1. fillRange
      使用一个值去替换指定范围内的所有值
    List l = [1, 2, 3,4,5,6,7,8,9,1];
    l.fillRange(0,3,0);
    print(l);//[0,0,0,4,5,6,7,8,9,1]
    

    常用操作

    1. sort()
      用来排序
    List l = [1, 2, 3,4,5,6,7,8,9,1];
    l.sort((left,right)=>left-right>0);
    print(l);//[1,1,9,8,7,6,5,4,3,2]
    
    1. sublist
      获取子数组,也可以理解为数组裁剪,但是不影响原数组
    List l = [1, 2, 3,4,5,6,7,8,9,1];
    List a = l.sublist(0,3);
    print(a);//[1,2,3]
    

参与评论