在Dart/Flutter中能否创建含固定长度内层数组的多维数组?
在Flutter中实现固定内层长度的二维数组
在Dart(Flutter使用的语言)中,你可以通过以下几种方式实现要求的二维数组结构:
方式一:逐步构建二维数组
先初始化外层可变数组,再逐个添加固定长度的内层数组:
// 外层数组可根据需求添加更多内层数组 List<List<dynamic>> bigArray = []; // 创建固定长度为4的内层数组,用null作为初始值,可替换为具体类型的默认值 var innerArray1 = List.filled(4, null); innerArray1[0] = "val1"; innerArray1[1] = "val2"; innerArray1[2] = "val3"; innerArray1[3] = "val4"; bigArray.add(innerArray1); // 快速添加另一个固定长度内层数组并赋值 var innerArray2 = List.filled(4, 0); innerArray2[0] = 10; innerArray2[1] = 20; innerArray2[2] = 30; innerArray2[3] = 40; bigArray.add(innerArray2);
方式二:直接初始化完整二维数组
如果提前知道需要多少个内层数组,可以直接在外层数组中定义:
// 外层数组包含3个固定长度为4的内层字符串数组,初始值为空字符串 List<List<String>> bigArray = [ List.filled(4, ""), List.filled(4, ""), List.filled(4, "") ]; // 给指定内层数组的元素赋值 bigArray[0][0] = "val1"; bigArray[0][1] = "val2"; bigArray[0][2] = "val3"; bigArray[0][3] = "val4";
方式三:批量生成固定数量的内层数组
如果需要批量创建多个固定长度的内层数组,使用List.generate更高效:
// 生成包含8个固定长度为4的内层整数数组,初始值为0 List<List<int>> bigArray = List.generate( 8, (index) => List.filled(4, 0), ); // 修改指定位置的元素 bigArray[3][2] = 500;
注意事项
List.filled(4, 初始值)创建的是固定长度的列表,无法调用add、remove等改变长度的方法,符合你要求的固定长度需求;- 把代码中的
dynamic、String、int替换为你实际需要的数据类型即可; - 如果需要内层数组可变长度,可直接用
[val1, val2, val3, val4]创建,但这种方式无法保证后续长度不被修改。
内容的提问来源于stack exchange,提问作者dana
相关产品推荐
相关产品推荐

