首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dart中,`List.unmodifiable`是创建一个不可修改的视图,还是创建一个全新的独立列表?

在Dart中,`List.unmodifiable`是创建一个不可修改的视图,还是创建一个全新的独立列表?
EN

Stack Overflow用户
提问于 2018-05-13 01:11:28
回答 1查看 5.6K关注 0票数 9
  1. 在Dart中,List.unmodifiable(someList)Map.unmodifiable(someMap)是创建不可修改的视图,还是创建一个全新的独立列表/地图?我猜这是一个新的独立名单,但我必须确定。
    • 如果它是一个视图,对原始列表的修改将修改现在不那么不可修改的列表,但是有时您只是丢弃原始列表,并且创建视图要快得多。

  2. 而且,如果他们创建独立的列表/映射,是否有什么方法可以为性能目的创建不可修改的视图呢?
    • Update:好的,我已经回答了我自己的第二个问题,找到了这个:文档。但我仍然需要知道其他问题的答案。

  3. 从另一个列表创建省道列表,包括List.unmodifiable(someList)创建的省道列表,大O是什么?例如,这是Java集合的信息:Java集合的大O
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-16 00:06:18

  1. 项目是复制的。这是一个全新的独立名单。
  2. 更具体地说,请参见省道藏书图书馆
    • UnmodifiableListView
    • UnmodifiableMapView

  3. 它是O(N) - it复制所有元素,因此它必须访问每个元素。
    • 如果您从另一个列表中使用List.unmodifiable,它就知道目标长度,所以它不必在迭代时调整正在创建的列表的大小。
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50311900

复制
相关文章

相似问题

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