Конструктор fromIterable
Конструктор fromIterable класса Map создает и возвращает
новый объект Map на основе переданного Iterable.
Первым параметром конструктор принимает исходный Iterable,
вторым - функцию key, которая вычисляет ключ для каждого элемента,
третьим - функцию value, которая вычисляет значение для каждого элемента.
Если функции не указаны, ключом и значением становится сам элемент.
Синтаксис
Map.fromIterable(iterable, {key, value})
Пример
Давайте создадим Map из списка чисел, где ключом будет само число, а значением - его квадрат:
void main()
{
Iterable<int> numbers = [1, 2, 3, 4, 5];
Map<int, int> res = Map.fromIterable(
numbers,
key: (item) => item,
value: (item) => item * item,
);
print(res);
}
Результат выполнения кода:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Пример
Давайте создадим Map из списка строк, где ключом будет строка, а значением - ее длина:
void main()
{
Iterable<String> words = ['abcde', 'ab', 'abc'];
Map<String, int> res = Map.fromIterable(
words,
key: (item) => item,
value: (item) => item.length,
);
print(res);
}
Результат выполнения кода:
{abcde: 5, ab: 2, abc: 3}
Пример
Если не указывать функции key и value,
то и ключом, и значением станет сам элемент:
void main()
{
Iterable<int> numbers = [1, 2, 3];
Map<int, int> res = Map.fromIterable(numbers);
print(res);
}
Результат выполнения кода:
{1: 1, 2: 2, 3: 3}
Смотрите также
-
конструктор
from,
который создает Map из другого Map -
конструктор
fromEntries,
который создает Map из набора MapEntry -
конструктор
of,
который создает Map из переданных пар -
класс
Map,
который представляет собой коллекцию пар ключ-значение