"OrderedHashTable" (数据结构)

"OrderedHashTable"

表示一个哈希表,其中的键和值为普通表达式,并保留元素插入的顺序.

更多信息

  • 有序哈希表用于在保留插入顺序很重要的情况下存储可通过键来获取的值:
  • CreateDataStructure["OrderedHashTable"]创建新的空 "OrderedHashTable"
    CreateDataStructure["OrderedHashTable",assoc]创建一个包含来自 assoc 的规则的新 "OrderedHashTable"
    Typed[x,"OrderedHashTable"]指定 x 的类型为 "OrderedHashTable"
  • 对于类型为 "OrderedHashTable" 的数据结构,可进行以下操作:
  • ds["Copy"]返回 ds 的副本时间:O(n)
    ds["Elements"]返回 ds 的元素列表时间:O(n)
    ds["EmptyQ"]如果 ds 中没有元素则返回 True时间:O(1)
    ds["Insert",keyvalue]key 及关联的 value 添加到 ds 中,如果添加成功则返回 True时间:O(1)
    ds["KeyDrop",key]ds 中删除 key 及其值时间:O(1)
    ds["KeyDropAll"]删除 ds 中所有的键及其值时间:O(n)
    ds["KeyExistsQ",key]如果 ds 中有 key 则返回 True时间:O(1)
    ds["Keys"]以列表形式返回 ds 中的键时间:O(n)
    ds["Length"]ds 中存储的 key-value 对的数量时间:O(1)
    ds["Lookup",key]返回 ds 中存储的 key 的值;如果没有找到该键则返回 Missing 对象时间:O(1)
    ds["Lookup",key,defFun]返回 ds 中存储的 key 的值;如果没有找到该键则返回 defFun[key]时间:O(1)
    ds["Values"]以列表形式返回 ds 中的值时间:O(n)
    ds["Visualization"]返回 ds 的可视化时间:O(n)
  • 还支持以下函数:
  • dsi===dsj如果 dsi 等于 dsj 则为 True
    FullForm[ds]ds 的完全形式
    Information[ds]关于 ds 的信息
    InputForm[ds]ds 的输入形式
    Normal[ds]ds 转换成普通表达式

范例

打开所有单元关闭所有单元

基本范例  (2)

可用 CreateDataStructure 创建新的 "OrderedHashTable"

插入键与值:

只存储了一个键:

测试是否有键:

查找值:

如果没有找到键,返回 Missing 对象:

返回表达式形式的 ds

可视化数据结构:

保留元素插入的顺序:

范围  (1)

信息  (1)

可用 CreateDataStructure 创建新的 "OrderedHashTable"

数据结构 ds 的信息: