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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
