首页 > 解决方案 > 如何在 dart 语言中创建多维列表?

问题描述

如何在 dart 中创建多维列表?在其他语言中,我们可以为此使用数组,但在 dart 中,我们使用 List 。所以我在 google 中发现我找不到在 dart 中创建多维列表的方法?有人知道在飞镖中创建多维列表吗?

标签: dart

解决方案


有多种方法可以做到这一点。最简单的解决方案是创建一个列表列表,例如:

void main() {
  // Create 5x5 list
  List<List<int>> twoDimList = List.generate(5, (_) => List.filled(5, 0));
  twoDimList[0][0] = 5;
  print(twoDimList);
}

一种更有效的方法是使用单个列表并通过使用两个坐标来访问它,就像我在以前的项目中使用的以下类一样:

class Grid<T> {
  final int length, height;
  final List<T> list;

  Grid(this.length, this.height) : list = List(length * height);

  T get(int x, int y) => list[_getPos(x, y)];
  void set(int x, int y, T value) => list[_getPos(x, y)] = value;

  int _getPos(int x, int y) => x + (y * length);
}

推荐阅读