Конструктор identity класса Map
Конструктор identity класса Map создает
новую Map, в которой каждый ключ равен своему
значению. Это удобно, когда нужно быстро
построить коллекцию, где элементы ссылаются
сами на себя. Конструктор не принимает
обязательных параметров. Дополнительно можно
передать именованный параметр equals для
сравнения ключей и hashCode для вычисления
хеш-кода. По умолчанию используется стандартное
сравнение и хеширование.
Синтаксис
Map.identity({bool equals(K a, K b)?, int hashCode(K key)?})
Пример
Давайте создадим Map с помощью конструктора
identity и выведем ее содержимое:
void main()
{
Map<String, String> map = Map.identity();
map['a'] = 'a';
map['b'] = 'b';
map['c'] = 'c';
print(map);
}
Результат выполнения кода:
{a: a, b: b, c: c}
Пример
Давайте создадим Map на основе списка строк, где каждая строка будет и ключом, и значением:
void main()
{
List<String> list = ['abcde', '12345'];
Map<String, String> map = Map.identity();
for (String item in list) {
map[item] = item;
}
print(map);
}
Результат выполнения кода:
{abcde: abcde, 12345: 12345}
Пример
Давайте проверим, что ключ и значение действительно совпадают:
void main()
{
Map<int, int> map = Map.identity();
map[1] = 1;
map[2] = 2;
map[3] = 3;
for (var entry in map.entries) {
print('Key: ${entry.key}, Value: ${entry.value}');
}
}
Результат выполнения кода:
"Key: 1, Value: 1"
"Key: 2, Value: 2"
"Key: 3, Value: 3"
Смотрите также
-
класс
Map,
который представляет собой коллекцию пар ключ-значение -
конструктор
from,
который создает Map из другой Map -
конструктор
of,
который создает Map из пар ключ-значение -
конструктор
fromIterable,
который создает Map из итерируемого объекта