首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dart中,如何复制/克隆2D列表?

在Dart中,如何复制/克隆2D列表?
EN

Stack Overflow用户
提问于 2021-09-27 03:19:00
回答 2查看 96关注 0票数 1

我有两个二维列表声明如下,在Dart中复制/克隆二维列表(I到N)的正确和快速的方法是什么?

代码语言:javascript
复制
List<List<double>>? I = List.generate(
        3, (i) => List.generate(1000 * 1000, (j) => 0.0, growable: false),
        growable: false);
 List<List<double>>? N = List.generate(
        3, (i) => List.generate(1000 * 1000, (j) => 0.0, growable: false),

我可以遍历每个元素并复制它,但这不是有效的方法。

代码语言:javascript
复制
for (int i = 0; i < I!.length; i++)
      for (int j = 0; j < I![i].length; j++) N![i][j] = I![i][j];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-27 04:08:27

List List.copyRange(列出目标,int at,列出源,int?开始吧,int?(完)

list.setRange(int start,int end,Iterable iterable,int skipCount = 0)

代码语言:javascript
复制
for (int i = 0; i < I!.length; i++)
    List.copyRange<int>(N![i], 0, I![i])
代码语言:javascript
复制
for (int i = 0; i < I!.length; i++)
    N![i].setRange<int>(0, N![i].length,I![i])

这将重置项目指针

代码语言:javascript
复制
List.copyRange(N!,0, I!.map<List<int>>((item)=>item.toList()).toList());
票数 0
EN

Stack Overflow用户

发布于 2021-09-27 04:38:56

给定一个名为originalList<List<double>>,我将使用以下命令复制它:

代码语言:javascript
复制
List<List<double>> copy = [for (var sublist in original) [...sublist]];

请注意,这将创建一个新的List<List<double>>;如果您必须更改现有的as shirne suggested,那么使用List.setRange as shirne suggested会更合适。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69340832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档