Map<K, V>抽象 接口

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

图中键的数量是有限的,每个键都与其关联的一个值一一对应。

Map及其键和值都可以迭代。迭代的顺序由Map的个别类型定义。例如

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

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

通常不允许在键在Map中时修改其相等性(以及因此其哈希码)。某些专用子类型可能更宽容,在这种情况下,它们应记录此行为。

实现者

构造函数

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

属性

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

方法

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 invocation) → dynamic
当访问不存在的方法或属性时调用。
继承
putIfAbsent(K key, V ifAbsent()) → V
查找 key 的值,如果不存在则添加新条目。
remove(Object? key) → V?
如果存在,从映射中移除 key 及其关联的值。
removeWhere(bool test(K key, V value)) → 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>