跳转到内容

BlitzMax/模块/数据结构/映射

来自维基教科书,开放世界中的开放书籍

映射包含一组键值对。键和值可以是任何对象类型。 红黑树 用作数据结构。

对于有序的对象集合,请参见 链表

CreateMap

[编辑 | 编辑源代码]

函数 CreateMap:TMap()

描述: 创建一个映射

返回值: 一个新的映射对象

函数 ClearMap( map:TMap )

描述: 清除一个映射

信息: ClearMapmap 中删除所有键和值

MapIsEmpty

[编辑 | 编辑源代码]

函数 MapIsEmpty( map:TMap )

描述: 检查一个映射是否为空

返回值: 如果 map 为空,则返回 True,否则返回 False

MapInsert

[编辑 | 编辑源代码]

函数 MapInsert( map:TMap,key:Object,value:Object )

描述: 将键值对插入到映射中

信息: 如果 map 已经包含 key,它的值将被 value 覆盖。

示例:

' mapinsert.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")

Print MapIsEmpty(map)

ClearMap(map)

Print MapIsEmpty(map)

MapValueForKey

[编辑 | 编辑源代码]

函数 MapValueForKey:Object( map:TMap,key:Object )

描述: 给定一个键查找一个值

返回值: 与 key 关联的值

信息: 如果 map 不包含 key,则返回一个 Null 对象。

示例:

' mapvalueforkey.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")

Print String(MapValueForKey(map, "Key 1"))

MapContains

[编辑 | 编辑源代码]

函数 MapContains( map:TMap,key:Object )

描述: 检查一个映射是否包含一个键

返回值: 如果 map 包含 key 则为 True

示例:

'mapcontains.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")

Print MapContains(map, "Key 1")
Print MapContains(map, "Key 2")

MapRemove

[编辑 | 编辑源代码]

函数 MapRemove( map:TMap,key:Object )

描述: 从映射中删除键值对

注释: 与 TMap 的 Remove 方法不同,此函数不返回键值对是否被删除。

示例:

' mapremove.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")

Print MapContains(map, "Key 1")

MapRemove(map, "Key 1")

Print MapContains(map, "Key 1")

函数 MapKeys:TMapEnumerator( map:TMap )

描述: 获取映射键

返回值: 一个迭代器对象

信息: MapKeys 返回的对象可以与 EachIn 一起使用来迭代 map 中的键。

示例:

' mapkeys.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")
MapInsert(map, "Key 2", "Value 2")

Local obj:Object
For obj = EachIn MapKeys(map)
	Print(String(obj) + "," + String(MapValueForKey(map, obj)))
Next

MapValues

[编辑 | 编辑源代码]

函数 MapValues:TMapEnumerator( map:TMap )

描述: 获取映射值

返回值: 一个迭代器对象

信息: MapValues 返回的对象可以与 EachIn 一起使用来迭代 map 中的值。

示例:

' mapvalues.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")
MapInsert(map, "Key 2", "Value 2")

Local obj:Object
For obj = EachIn MapValues(map)
	Print String(obj)
Next

函数 CopyMap:TMap( map:TMap )

描述: 复制一个映射

返回值: map 的副本

示例:

' copymap.bmx

Local map:TMap = CreateMap()

MapInsert(map, "Key 1", "Value 1")

Local map2:TMap = CopyMap(map)

Print String(MapValueForKey(map2, "Key 1"))
华夏公益教科书