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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。