Open shuhaohe opened 2 years ago
我做了修改解决了这个bug:
func (l *LRUCache) Put(k,v interface{}) {
l.lock.Lock()
defer l.lock.Unlock()
if e,ok := l.cacheMap[k]; ok {
l.values.Remove(e)
delete(l.cacheMap,e.Value.(Pair).Key)
}
if l.values.Len() == l.cap {
back := l.values.Back()
l.values.Remove(back)
delete(l.cacheMap,back.Value.(Pair).Key)
}
front := l.values.PushFront(Pair{
Key: k,
Val: v,
})
l.cacheMap[k] = front
}
type Pair struct {
Key,Val interface{}
}
@cz321 欢迎提 PR