Конструктор unmodifiable
Конструктор unmodifiable класса Map создает
неизменяемую карту. В первый параметр мы передаем
исходную карту, на основе которой будет создана
новая неизменяемая карта. После создания такую
карту нельзя изменять: добавлять, удалять или
изменять элементы. Любая попытка модификации
приведет к ошибке.
Синтаксис
Map.unmodifiable(Map<K, V> other)
Пример
Давайте создадим неизменяемую карту на основе обычной карты и выведем ее содержимое:
void main()
{
Map<String, int> original = {
'a': 1,
'b': 2,
'c': 3
};
Map<String, int> res = Map.unmodifiable(original);
print(res);
}
Результат выполнения кода:
{a: 1, b: 2, c: 3}
Пример
Давайте попробуем добавить новый элемент в неизменяемую карту и посмотрим, что произойдет:
void main()
{
Map<String, int> original = {
'a': 1,
'b': 2
};
Map<String, int> res = Map.unmodifiable(original);
res['c'] = 3;
}
Результат выполнения кода:
UnsupportedError (Unsupported operation: Cannot modify unmodifiable map)
Пример
Давайте проверим, что исходная карта остается изменяемой, а неизменяемая карта лишь копирует ее данные:
void main()
{
Map<String, int> original = {
'a': 1,
'b': 2
};
Map<String, int> res = Map.unmodifiable(original);
original['c'] = 3;
print(original);
print(res);
}
Результат выполнения кода:
{a: 1, b: 2, c: 3}
{a: 1, b: 2}
Смотрите также
-
класс
Map,
который представляет собой коллекцию пар ключ-значение -
конструктор
from,
который создает карту из другой карты -
конструктор
of,
который создает карту из пар ключ-значение -
конструктор
fromEntries,
который создает карту из итерируемых пар