go - Not Recently Used 算法使用 map

标签 go hashmap

我需要在需要实现 NRU(最近未免费)算法的地方。 当前的数据结构只是简单的映射,比如

map[string]bool

基本上这是字符串可用性的 HashMap 。但 而不仅仅是 bool,我想包含一些时间戳,以便 对于特定的 string 是否可用,我也会选择 Not Recently Freed (Oldest) 字符串。想知道如何修改 Go 的 数据结构。

我在想

map[string]bool+timestamp 

这样,如果设置了最高位,则显示可用或不可用 时间戳将帮助我根据时间进行搜索。

最佳答案

如果你想在映射的值部分存储两种类型,你可以通过创建一个新的结构类型来实现:

type Value struct {
  avail bool
  timestamp time.Time
}

然后你可以创建一个 map 如下:

m := map[string] Value{}

并添加到 map 中:

m["some-value"] = Value{avail:true, timestamp: time.Now()}

关于go - Not Recently Used 算法使用 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327600/

相关文章:

java - 计算 HashMap 中元素的频率

html - 桌面应用程序和 Web 前端之间的通信

mongodb - 使用接口(interface)通过 mgo 从数据库中检索

go - 如何从 map 中检索值(value) - golang?

google-app-engine - 用于 go on appengine 的联系表单邮件处理程序示例

java - 从 HashMap 中只打印一个对象

go mod vendor 返回 "all matched no packages"

java - 为 HashMap 创建自定义迭代器

java - JAXB 无法编码(marshal)类型 "java.util.HashMap"

javascript - Backbone.js : Changing view. 属性没有反射(reflect)在 view.el 上