Создает ли List.unmodifiable в Dart неизменяемое представление или целый новый независимый список? - PullRequest
0 голосов
/ 13 мая 2018

1) В Dart, List.unmodifiable(someList) и Map.unmodifiable(someMap) создать неизменяемое представление или целый новый независимый список / карту?Я предполагаю, что это новый независимый список, но я должен быть уверен.

Если это представление, изменения в исходном списке изменят теперь не столь неизменяемый список, но иногда вы просто все равно отказываетесь от оригинала,и создание представления выполняется намного быстрее.

2) И, если они создают независимые списки / карты, есть ли способ создать неизменяемое представление для повышения производительности?

3) Что такое Big O для создания списка дротиков из другого, в том числе созданного List.unmodifiable(someList)?Например, это информация для коллекций Java: https://gist.github.com/FedericoPonzi/8d5094dbae33cbb94536a73f62d1c1a0

Обновление: Хорошо, я ответил на свой вопрос № 2, найдя это: https://api.dartlang.org/stable/1.23.0/dart-collection/UnmodifiableListView-class.html

Но мне все еще нужно знать ответ на вопросы 1 и 3.

1 Ответ

0 голосов
/ 16 мая 2018

Для # 1 элементы копируются.Это совершенно новый независимый список.

Для # 2 см. https://api.dartlang.org/dev/2.0.0-dev.55.0/dart-collection/dart-collection-library.html

UnmodifiableListView и UnmodifiableMapView.

Для # 3, Большой (O)имеет значение N - он копирует все элементы, поэтому он должен посещать каждый элемент.

Если вы используете List.unmodifiable из другого списка, он знает целевую длину, поэтому ему не придется изменять размер создаваемого списка.как это повторяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...