📜  Dart编程 – 列表

📅  最后修改于: 2021-09-02 05:13:13             🧑  作者: Mango

在Dart编程中,List 数据类型类似于其他编程语言中的数组。列表用于表示对象的集合。它是一组有序的对象。 Dart中的核心库负责List class的存在、创建和操作。

列表的逻辑表示:
列表飞镖编程

元素的索引表示特定数据的位置,当调用该索引的列表项时,将显示该元素。通常,列表项是从其索引中调用的。

列表类型 –
根据其长度,大致有两种类型的列表:

  1. 固定长度列表
  2. 成长清单

固定长度列表

在这里,列表的大小是最初声明的,不能在运行时更改。

句法:

// Declaring list
var list_name = new List (size);

// Inserting elements in list
list_name[index] = value;

例子:

void main()
{
    var gfg = new List(3);
    gfg[0] = 'Geeks';
    gfg[1] = 'For';
    gfg[2] = 'Geeks';
  
    // Printing all the values in List
    print(gfg);
  
    // Printing value at specific position
    print(gfg[2]);
}

输出:

[Geeks, For, Geeks]
Geeks

成长清单

这种类型的列表是在不声明列表大小的情况下声明的。它的长度可以在运行时改变。

句法:

// Declaring the list with values
var list_name = [val 1, val 2, val 3];

为可增长列表添加一个值 –

void main()
{
    var gfg = [ 'Geeks', 'For' ];
  
    // Printing all the values in List
    print(gfg);
  
    // Adding new value in List and printing it
    gfg.add('Geeks'); // list_name.add(value);
    print(gfg);
}

输出:

[Geeks, For]
[Geeks, For, Geeks]

向可增长列表添加多个值 –

void main()
{
    var gfg = [ 'Geeks' ];
  
    // Printing all the values in List
    print(gfg);
  
    // Adding multiple values in List and printing it
  
    // list_name.addAll([val 1, val 2, ...]);
    gfg.addAll([ 'For', 'Geeks' ]); 
    print(gfg);
}

输出:

[Geeks]
[Geeks, For, Geeks]

在特定索引处向可增长列表添加值 –

void main()
{
    var gfg = [ 'Geeks', 'Geeks' ];
  
    // Printing all the values in List
    print(gfg);
  
    // Adding new value in List at specific index and printing it
  
    // list_name.insert(index, value);
    gfg.insert(1, 'For'); 
    print(gfg);

输出:

[Geeks, Geeks]
[Geeks, For, Geeks]

在特定索引处向可增长列表添加多个值 –

void main()
{
    var gfg = [ 'Geeks' ];
  
    // Printing all the values in List
    print(gfg);
  
    // Adding new value in List at specific index and printing it
  
    // list_name.insertAll(index, list_of_values);
    gfg.insertAll(1, [ 'For', 'Geeks' ]); 
    print(gfg);
  
    // Element at index 1 in list
    print(gfg[1]);
}

输出:

[Geeks]
[Geeks, For, Geeks]
For

列表类型(其维度的基础):
基于维度的列表有多种数量,但其中最受欢迎的是:

  1. 一维 (1-D) 列表
  2. 二维 (2-D) 列表
  3. 3 维 (3-D) 列表
  4. 多维列表

在这里,我们已经讨论了 1-D 列表。

二维 (2-D) 列表 –

在这里,列表是在两个维度中定义的,从而形成了表格的外观。

创建二维列表 –

void main()
{
    int a = 3;
    int b = 3;
  
    // Creating two dimentional list
    var gfg = List.generate(a, (i) = > List(b), growable: false);
  
    // Printing its value
    print(gfg);
  
    // Inserting values
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            gfg[i][j] = i + j;
        }
    }
    // Printing its value
    print(gfg);
}

输出:

[[null, null, null], [null, null, null], [null, null, null]]
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]

另一种创建二维列表的方法 –

void main()
{
    // Creating three dimentional list
    var gfg = List.generate(3, (i) = > List.generate(3, (j) = > i + j));
  
    // Printing its value
    print(gfg);
}

输出:

[[0, 1, 2], [1, 2, 3], [2, 3, 4]]

还有另一种创建二维列表的方法,即给出与索引相关的值,这将导致创建二维列表。

3 维 (3-D) 列表 –

3-D 列表的表示非常困难,但其创建类似于 2-D 列表。

例子:

void main()
{
    // Creating three dimentional list
    var gfg = List.generate(3, (i) = > List.generate(3, 
                               (j) = > List.generate(3,
                               (k) = > i + j + k)));
  
    // Printing its value
    print(gfg);
}

输出:

笔记:
以类似的方式,可以创建n 维列表,即使用“List.generate()”方法。