Конструктор фабрики Map.fromIterable
Map.fromIterable(Создаёт экземпляр Map, в котором ключи и значения вычисляются из iterable.
Создаваемая карта — это LinkedHashMap. LinkedHashMap требует, чтобы ключи реализовывали совместимые operator== и hashCode, и допускает null в качестве ключа. Она итерируется в порядке вставки ключей.
Для каждого элемента iterable этот конструктор вычисляет пару ключ-значение, применяя key и value соответственно.
Пример ниже создаёт новую карту из списка. Ключи map — это list значения, преобразованные в строки, а значения map — это квадраты list значений:
List<int> list = [1, 2, 3];
Map<String, int> map = new Map.fromIterable(list,
key: (item) => item.toString(),
value: (item) => item * item));
map['1'] + map['2']; // 1 + 4
map['3'] - map['2']; // 9 - 4
Если значения для key и value не указаны, по умолчанию используется функция тождества.
В следующем примере ключи и соответствующие значения map — это list значения:
map = new Map.fromIterable(list); map[1] + map[2]; // 1 + 2 map[3] - map[2]; // 3 - 2
Ключи, вычисленные исходным iterable , не обязательно должны быть уникальными. Последнее вхождение ключа просто перезапишет любое предыдущее значение.
Источник
factory Map.fromIterable(Iterable iterable,
{K key(element), V value(element)}) = LinkedHashMap<K, V>.fromIterable;
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Map/Map.fromIterable.html