flutter后如何保存数据List.add()in flutter

kx5bkwkv  于 2022-12-19  发布在  Flutter
关注(0)|答案(3)|浏览(167)

将数据存储在一维List中,然后将add()存储到二维List中。
add()之后,.clear()是一维列表。
但是,由于List引用了地址,clear()丢失了地址,因此2D数组变成了空List。 清除后仍在二维列表中?

List<int> num = [1, 2, 3];
List<List<int> num2 = [];
num2.add(num);
num.clear();
bnl4lu3b

bnl4lu3b1#

您可以使用List.from()来执行shallow copy

List<int> num = [1, 2, 3];
List<List<int>> num2 = [];
num2.add(List.from(num));
print(num2); //[[1, 2, 3]]
num.clear();
print(num2); //[[1, 2, 3]]
hvvq6cgz

hvvq6cgz2#

toList()方法中使用技巧

void main() {
  List<int> num1 = [1, 2, 3];
  List<List<int>> num2 = [[0,2]] ;
  num2.add(num1.toList());
  num1.clear();

  print(num2); // [[0, 2], [1, 2, 3]]

  print(num1); // []
}
ldfqzlk8

ldfqzlk83#

您应该将列表添加为匿名列表

List<int> num = [1, 2, 3];
List<List<int>> num2 = [];

// add as anonymous list
num2.add(num.toList());

num.clear();

print(num2.length);              // 1
print(num.length);               // 0
      
for (var element in num2) {
     print(element.length);      // 3
}

相关问题