Конструктор Map.fromEntries
предназначен для создания карты путем генерации последовательности пар.
Вы можете использовать его для создания карты из другой карты как Map.fromEntries(otherMap.entries)
, но это расточительно. Вы можете просто сделать Map.from(otherMap)
.
Более интересно, если вы вычисляете записи из чего-то другого (которое может быть, а может и не быть самим собой).
Пример:
Iterable<int> someInts = [2, 7, .... ];
var squareMap = Map.fromEntries(someInts.map((n) => MapEntry(n, n * n)));
print(squareMap[7]); // prints 49.
Или вы можете отфильтровать записи:
var filteredMap = Map.fromEntries(otherMap.entries.where((e) => e.key.isOdd));
Часто вы можете получить тот же эффект, используя Map.fromIterable
или Map.fromIterables
, все зависит от того, какие примитивы у вас есть. Фильтрация записей существующей карты особенно проста с использованием Map.fromEntries
, тогда как создание новой карты с нуля, вероятно, одинаково легко с использованием Map.fromIterable
или Map.fromIterables
.