dart:core
库中Map.fromIterable
的用法介绍如下。
用法:
Map<K, V>.fromIterable(
Iterable iterable,
{K key(
dynamic element
)?,
V value(
dynamic element
)?}
)
创建一个 Map 实例,其中的键和值是从 iterable
计算的。
对于 iterable
的每个元素,通过将 key
和 value
分别应用于可迭代的元素来计算键/值对。
相当于Map文字:
<K, V>{for (var v in iterable) key(v): value(v)}
文字通常更可取,因为它允许更精确的输入。
下面的示例从整数列表创建一个新映射。 map
的键是list
值转换为字符串,map
的值是list
值的平方:
final numbers = <int>[1, 2, 3];
final map = Map<String, int>.fromIterable(numbers,
key: (item) => item.toString(),
value: (item) => item * item);
print(map); // {1: 1, 2: 4, 3: 9}
如果没有为 key
和 value
指定值,则默认为恒等函数。在这种情况下,可迭代元素必须可分配给已创建映射的键或值类型。
在以下示例中,map
的键和对应的值直接是list
的值:
final numbers = <int>[1, 2, 3];
final map = Map.fromIterable(numbers);
print(map); // {1: 1, 2: 2, 3: 3}
由源 iterable
计算的键不需要是唯一的。键的最后一次出现将覆盖任何先前出现的值。
创建的Map是 LinkedHashMap 。 LinkedHashMap
需要 key 来实现兼容的 operator==
和 hashCode
。它以 key 插入顺序进行迭代。
相关用法
- Dart Map.fromIterables用法及代码示例
- Dart Map.from用法及代码示例
- Dart Map.fromEntries用法及代码示例
- Dart Map.forEach用法及代码示例
- Dart Map.update用法及代码示例
- Dart Map.addEntries用法及代码示例
- Dart Map.removeWhere用法及代码示例
- Dart Map.remove用法及代码示例
- Dart Map.containsValue用法及代码示例
- Dart Map.clear用法及代码示例
- Dart Map.containsKey用法及代码示例
- Dart Map.updateAll用法及代码示例
- Dart Map.unmodifiable用法及代码示例
- Dart Map.putIfAbsent用法及代码示例
- Dart Map.of用法及代码示例
- Dart Map.addAll用法及代码示例
- Dart MapMixin.containsKey用法及代码示例
- Dart MapEntry.value用法及代码示例
- Dart MapMixin.update用法及代码示例
- Dart MapView.containsValue用法及代码示例
- Dart MapMixin.putIfAbsent用法及代码示例
- Dart MapMixin.addAll用法及代码示例
- Dart MapMixin.clear用法及代码示例
- Dart MapMixin.addEntries用法及代码示例
- Dart MapView.clear用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Map<K, V>.fromIterable constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。