dart - 如何在 dart 语言中创建多维列表?
问题描述
如何在 dart 中创建多维列表?在其他语言中,我们可以为此使用数组,但在 dart 中,我们使用 List 。所以我在 google 中发现我找不到在 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);
}
推荐阅读
- android - 从 Volley 中的刷新令牌获取访问令牌
- php - 如何将 TxtNation 字符串转换为数组?
- python - 如何抓取没有 href 属性的链接?
- node.js - 如何跳过 50 条记录,然后在 node.js 中使用 findOne 查询在 mongodb 中查找匹配的记录
- c++ - 如何手动遵循计算器的 C++ 语法?
- angular-directive - AngularDart:在结构指令中使用模板输入变量
- python - 如何按一列过滤数据并按另一列分组
- php - 添加代码以从另一个控制器运行
- netsuite - NetSuite SuiteScript 2.0 无法以编程方式为部分创建的当前记录输入库存详细信息子列表子记录
- c++ - 在没有主方法调用的情况下运行 Boost.Test