"LeastRecentlyUsedCache" (数据结构)

"LeastRecentlyUsedCache"

表示一个固定大小的缓存,其中的键和值为普通表达式.

更多信息

  • 固定大小的缓存表存储可通过键来获取的值:
  • CreateDataStructure["LeastRecentlyUsedCache",capacity]创建可存储 capacity 个值的新的空 "LeastRecentlyUsedCache"
    CreateDataStructure["LeastRecentlyUsedCache",elems]创建一个包含 elems 的新 "LeastRecentlyUsedCache"
    CreateDataStructure["LeastRecentlyUsedCache",cache, f]创建新的具有指定的逐出函数 f"LeastRecentluUsedCache"
    Typed[x,"LeastRecentlyUsedCache"]指定 x 的类型为 "LeastRecentlyUsedCache"
  • 对于类型为 "LeastRecentlyUsedCache" 的数据结构,可进行以下操作:
  • ds["Capacity"]ds 中最多可以存储多少个 key-value 对时间:O(1)
    ds["Copy"]返回 ds 的副本时间:O(n)
    ds["EmptyQ"]如果 ds 中没有任何 key-value 对则返回 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["Peek"]返回存储在 ds 中的最新的值时间:O(1)
    ds["Peek",key]返回 ds 中存储的 key 的值;不要将此键变为最近使用的元素时间:O(1)
    ds["RemoveOldest"]删除 ds 中最早的 key-value 对时间: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 转换成普通表达式
  • 如果 "LeastRecentlyUsedCache" 已存储了最大数量的 key-value 数据对,任何新的插入操作都使最近最少使用的 key-value 对被清除掉.

范例

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

基本范例  (2)

可用 CreateDataStructure 创建新的 "LeastRecentlyUsedCache"

存储的 key-value 对的数量:

最多可存储多少个 key-value 对:

插入键与值:

只存储了一个键:

测试是否有键:

查找值:

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

在缓存中存储更多元素并显示这些元素:

查找值:

表达式形式显示了最近使用的数据对:

插入另一个键与值:

表达式形式显示出一个 key-value 对从缓存中被清除:

可视化 "LeastRecentlyUsedCache",显示最近使用的 key-value 对:

范围  (2)

信息  (1)

可用 CreateDataStructure 创建新的 "LeastRecentlyUsedCache"

数据结构 ds 的信息:

逐出  (1)

创建一个函数来跟踪缓存中的逐出:

创建新的 "LeastRecentlyUsedCache",容量为 2,并带有可跟踪逐出的函数:

在缓存中插入两个 key-value 数据对:

缓存现在已满. 如果插入新元素,它将逐出最近最少使用的项:

验证元素是否被逐出:

逐出的数量:

逐出的元素: