collections - 如何在 Dart 中创建矩阵?

标签 collections flutter dart

我有一个List<String>我想创建一个 Set<String> 的方阵(二维数组/列表)尺寸与 List<String> 的长度相同.

我尝试使用

List.filled(entries.length, List.filled(entries.length, Set<String>()));

但问题是,矩阵的每一行似乎都引用同一个列表实例,因此更改一行中的值也会更改所有其他行中的值。

然后我尝试了

List.filled(entries.length, List.from(List.filled(entries.length, Set<String>())));

但我仍然遇到同样的问题。最终我投降并诉诸

List<List<Set<String>>> matrix = [];

for(int i=0; i<entries.length; i++) {
    List<Set<String>> row = [];
    for (int n = 0; n<entries.length; n++) {
        row.add(Set<String>());
    }
    matrix.add(row);
}

它可以工作,但是很难看。有没有更干净的方法来做到这一点?

最佳答案

List.generate(n, (_) => List.generate(n, (_) => <String>{}));

关于collections - 如何在 Dart 中创建矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56767918/

相关文章:

java - 基于内存的数据存储

Flutter AZURE BLOB IMAGE UPLOAD - 如何将使用移动相机拍摄的图像上传到 azure blob 存储

image - 如何在Dart三元运算符中检查空控件值以显示默认图像(如果为空)?

dart - 如果 Dartium 上的行为与 Chrome 上的行为存在差异

java - self 比较接口(interface)在集合类中做什么?

java - 如果 Java 8 样式中存在值,如何从 HashMap 中删除

dart - 是否可以修改 Dart 中参数的引用?

flutter - Flutter中.add方法的相反

java - 如何在 java 中对包含字符串、整数和字母数字的集合进行排序

list - 如何从 dart/flutter 的列表中删除特定对象?