Dart| Flutter: 如何扁平化列表(附实例)

875 阅读1分钟

列表包含一个子列表或一个地图,即二维列表。

扁平化列表是为了从二维列表中输出一个单一的列表。

让我们在dart中创建一个子列表或二维列表的列表。

  var list = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8]
  ];

一个二维列表包含元素的列表,其中每个元素又是一个列表。

对列表进行平铺后,结果是

[1, 2, 3, 4, 5, 6, 7, 8]

在dart和flutter中扁平化列表?

我们有多种方法可以做列表扁平化。

  • 列表扩展方法:在这个例子中,列表扩展方法将每个元素扩展为零或一个元素。最后,调用toList()来转换一个单一的列表。

下面是一个使用List expand方法进行List flatten的例子。

void main() {
  var list = [    [1, 2, 3],
    [4, 5, 6],
    [7, 8]
  ];
  var flatList = list.expand((element) => element).toList();

  print(list);
  print(flatList);
}

输出:

[[1, 2, 3], [4, 5, 6], [7, 8]]
[1, 2, 3, 4, 5, 6, 7, 8]
  • 使用forEach和addAll方法

在这个例子中,创建了一个空的ListforEach ,用于遍历列表中的一个元素,并使用addAll方法将子列表添加到flatList中。

下面是一个例子

void main() {
  var list = [    [1, 2, 3],
    [4, 5, 6],
    [7, 8]
  ];
  var flatList = [];
  list.forEach((e) => flatList.addAll(e));

  print(list);
  print(flatList);
}

输出:

[[1, 2, 3], [4, 5, 6], [7, 8]]
[1, 2, 3, 4, 5, 6, 7, 8]

结论

总结一下,学习了多种扁平化列表的方法的例子。