Map<K, V>抽象 接口

一组键/值对,您可以使用其相关键从中检索值。

映射中键的数量是有限的,每个键都与一个值相关联。

映射及其键和值都可以迭代。迭代顺序由映射的特定类型定义。例如

  • 普通的HashMap是无序的(不保证顺序),
  • LinkedHashMap按照键插入顺序迭代,
  • 以及像SplayTreeMap这样的有序映射按照排序顺序迭代键。

通常情况下,不允许在执行う操作时修改映射(添加或删除键),例如在调用forEachputIfAbsent函数期间。在迭代键或值时修改映射也可能破坏迭代。

通常情况下,不允许在键(从而不是其哈希码)在映射中时修改其相等性。某些专用子类型可能更加宽泛,在这种情况下,它们应记录这种行为。

实现者

构造函数

Map()
创建一个空的LinkedHashMap
factory
Map.from(Map other)
创建一个具有与other相同的键和值的LinkedHashMap
factory
Map.fromEntries(Iterable<MapEntry<K, V>> entries)
创建一个新映射并添加所有条目。
factory
Map.fromIterable(Iterable iterable, {K key(dynamic element)?, V value(dynamic element)?})
创建一个映射实例,其键和值是从iterable计算出来的。
factory
Map.fromIterables(Iterable<K> keys, Iterable<V> values)
创建一个将给定的 keys 关联到给定 values 的映射。
factory
Map.identity()
创建一个使用默认实现 LinkedHashMap 的身份映射。
factory
Map.of(Map<K, V> other)
创建一个具有与other相同的键和值的LinkedHashMap
factory
Map.unmodifiable(Map other)
创建一个包含 other 中条目的不可修改的基于散列的映射。
factory

属性

entries Iterable<MapEntry<K, V>>
此映射的映射条目。
无设置器
hashCode int
此对象的哈希代码。
无设置器继承
isEmpty bool
映射中是否没有键/值对。
无设置器
isNotEmpty bool
映射中是否至少有一个键/值对。
无设置器
keys Iterable<K>
此的键。
无设置器
length int
映射中的键/值对数。
无设置器
runtimeType Type
对象的运行时类型的表示。
无设置器继承
values Iterable<V>
此的值。
无设置器

方法

addAll(Map<K, V> other) → void
other 的所有键/值对添加到此映射中。
addEntries(Iterable<MapEntry<K, V>> newEntries) → void
newEntries 的所有键/值对添加到此映射中。
cast<RK, RV>() Map<RK, RV>
如果需要,则提供以 RK 键和 RV 实例查看此地图的视图。
clear() → void
从地图中删除所有条目。
containsKey(Object? key) bool
判断此地图是否包含给定的 key
containsValue(Object? value) bool
判断此地图是否包含给定的 value
forEach(void action(K key, V value)) → void
action 应用到地图中的每个键/值对。
map<K2, V2>(MapEntry<K2, V2> convert(K key, V value)) Map<K2, V2>
通过给定的 convert 函数将此地图的所有条目转换后返回一个新地图。
noSuchMethod(Invocation) → dynamic
当访问不存在的属性或方法时调用。
继承的
putIfAbsent(K key, V ifAbsent()) → V
查找 key 的值,如果不存在,则添加新条目。
remove(Object? key) → V?
如果存在,从地图中删除 key 和其相关联的值。
removeWhere(bool test(K key, V)) → void
删除满足给定 test 的此地图中的所有条目。
toString() String
此对象的字符串表示形式。
继承的
update(K key, V update(V value), {V ifAbsent()?}) → V
更新提供的 key 对应的值。
updateAll(V update(K key, V value)) → void
更新所有值。

操作符

operator ==(Object other) bool
等价操作符。
继承的
operator [](Object? key) → V?
对于给定的 key 的值,或者当 key 不在映射中时返回 null
operator []=(K key, V value) → void
key 与给定的 value 相关联。

静态方法

castFrom<K, V, K2, V2>(Map<K, V> source) Map<K2, V2>
source 转换为 Map<K2, V2>