我刚接触flutter和dart。我在谷歌上搜索,但只能找到如何在flutter中创建一维列表的信息。我需要一个数值图表。
具体来说,我需要一个长度为12的行和长度为31的列,填充着升序数字。
1, 32, 63,
2, 33, 64,
3, 34, 65, etc....
感谢!我刚接触flutter和dart。我在谷歌上搜索,但只能找到如何在flutter中创建一维列表的信息。我需要一个数值图表。
具体来说,我需要一个长度为12的行和长度为31的列,填充着升序数字。
1, 32, 63,
2, 33, 64,
3, 34, 65, etc....
感谢! int row = 3;
int col = 4;
var twoDList = List<List>.generate(row, (i) => List<dynamic>.generate(col, (index) => null, growable: false), growable: false);
//For fill;
twoDList[0][1] = "deneme";
print(twoDList);
// [[null, deneme, null, null], [null, null, null, null], [null, null, null, null]]
声明并初始化一个矩阵x,它有m行n列,包含实数。
var x = new List.generate(m, (_) => new List(n));
List<List<int>>
使用生成器创建列表
要在 dart
中 声明
和 初始化
二维数组 2D
,可以使用以下语法:
List<List<int>> a =
[
[10, 2, 4, 6, -2],
[ 1, -16, 6, -2, -5],
[ 0, 3, 10, -5, 1],
[ 0, -4, 1, 18, 2],
[ 3, 1, 2, 2, -14],
];
List.generate
,即:const cols = 31;
const rows = 12;
final array = List.generate(rows,
(i) => List.generate(cols + 1, (j) => i + j * cols + 1, growable: false),
growable: false);
array.forEach((row) {
print(row);
});
// [1, 32, 63, ...
// [2, 33, 64, ...
// [3, 34, 65, ...
// ...
还有List.filled
,您可以在创建时用一些初始值来填充数组。以下是使用0初始化2d数组。
final array = List.generate(rows + 1, (i) => List.filled(cols + 1, 0, growable: false), growable: false);
void main(List<String> arguments) {
var list = createDimensionList(4, 5);
list[0][0] = 6;
print(list);
list[1][0] = 4;
print(list);
}
List<List<int>> createDimensionList(int rows, int columns,
{bool growable = false}) {
final columnLength = List<int>.filled(columns, 0, growable: growable);
var dataList =
List.generate(rows, (i) => columnLength.toList(), growable: growable);
return dataList;
}
//Output
[[6, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[6, 0, 0, 0, 0], [4, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
只需使用这个语句,我遇到了同样的问题,已经解决了
var list1 = List.generate(12,(i) => List.generate(31, (j) =>{Your equation to genearte })));
要初始化一个填充了0的二维矩阵:
List.generate(numberRows, (_) => List.filled(numberColumns, 0));
for
:const maxRows = 31;
const maxColumns = 12;
var matrix = [
for (var row = 0; row < maxRows; row += 1)
[for (var column = 0; column < maxColumns; column += 1)
1 + row + column * maxRows],
];
void main() {
List<dynamic> myArray = nd([12, 31])!;
print(myArray);
}
List? nd(List<int> dimensions) {
if (dimensions.isEmpty) {
return null;
} else {
return List.filled(dimensions[0], nd(dimensions.sublist(1)));
}
}