寫了一個方法進行功能測試
func main() {
cache := Constructor(3)
cache.put(11, 1)
cache.put(22, 2)
cache.put(33, 3)
cache.put(44, 4)
cache.put(55, 5)
cache.getCache()
cache.get(33)
fmt.Println("========== 獲取數(shù)據(jù)之后 ===============")
cache.getCache()
}
發(fā)現(xiàn):
當put大于緩存 limit 數(shù)量時,在緩存淘汰后谆甜,鏈表的 l.head.prev != nil
解決:
在代碼的 55梦鉴、57行,可加上:
l.end.next = nil
l.head.prev = nil
維持鏈表的頭尾結點指向空指針會更嚴謹一些??