1.6 聚合类型

一类数据总是批量呈现的,这样的数据为聚合类型容器类型

在Dart中,有三个最常用的聚合类型,分别是列表List、映射Map和集合Set

一、列表List

  1. 列表类型中可以盛放若干个同类型的对象,并且允许重复。

  2. 在声明列表对象时,其中盛放的对象类型放在 <> 中,我们称之为 泛型

  3. 一般称元素在列表中的位置为 索引 , 索引从 0 开始计数。

  4. 通过索引可以对索引处的值进行获取和修改的操作。

    void main() {
      List<int> numList = [1, 9, 9, 4, 3, 2, 8];
      int second = numList[1];
      print(second);
      numList[3] = 6;
      print(numList);
    }

    结果:

    9
    [1, 9, 9, 6, 3, 2, 8]
  5. 通过 add 方法,可以在列表的末尾添加一个元素;

  6. insert 方法,可以在指定的索引处插入一个元素:

    void main() {
      List<int> numList = [1, 9, 9, 4, 3, 2, 8];
      numList.add(10);
      numList.insert(0, 49);
      print(numList);
    }

    结果:

    [49, 1, 9, 9, 4, 3, 2, 8, 10]

  7. 列表方法中 remove 相关方法用于移除元素,比如 removeAt 移除指定索引处的元素;remove 移除某个元素值; removeLast 移除最后元素

    void main() {
      List<int> numList = [1, 9, 9, 4, 3, 2, 8];
      numList.removeAt(2);
      numList.remove(3);
      numList.removeLast();
      print(numList);
    }

    结果:

    [1, 9, 4, 2]

  8. 通过 .length 可以得到列表的长度

    void main() {
      List<int> numList = [1, 9, 9, 4, 3, 2, 8];
      print(numList.length);
    }

    结果:

    7

二、集合Set

  1. 集合类型也可以盛放若干个同类型的对象,它最大的区别是 不允许重复 ,它同样也支持一个泛型;指定的类型表示列表中只能盛放指定类型的数据

  2. 可以通过{}便捷的创建集合对象,其中盛放初始的数据

  3. 集合本身没有索引的概念,无法通过索引访问与修改元素

  4. 如果有重复的内容,会被自动合并

  5. 案例:

    输出:

    {1, 9, 6}

  6. 可以通过add方法在集合中添加元素,以及remove方法移除某个元素的值:

    结果:

  7. 集合最重要的特征是集合之间的运算,两个集合间通过 differenceunionintersection 方法可以分别计算差集、并集、交集,计算的结果也是一个集合:

    结果:

  8. 因为集合没有索引,所以遍历只能用for-in模式遍历

    结果:

三、映射Map

  1. map就是通过keyvalue进行关系映射的对象

  2. 可以通过{key: value, key: value ...}便捷的创建map对象,其中keyvalue表示初始数据

  3. 可以通过remove方法根据key进行删除

    结果:

  4. 通过变量[key] = value语法向映射中添加元素,如果key存在,则是修改

    结果:

  5. 对于映射来说,可以通过forEach方法进行遍历

    结果:

最后更新于