code: func (b *LRUCache) Init(capacity uint) {
  	b.table = make(map[string]*entry, capacity)
  	b.priorityQueue = make([]*entry, 0, capacity)
  	b.lruList.Init()
  	b.freeList.Init()
  	heap.Init(&b.priorityQueue)
  
  	// Reserve all the entries in one giant continous block of memory
  	arrayOfEntries := make([]entry, capacity)
  	for i := uint(0); i < capacity; i++ {
  		e := &arrayOfEntries[i]
  		e.element.Value = e
  		e.index = -1
  		b.freeList.PushElementBack(&e.element)
  	}
  }
docs: // Initialize the LRU cache instance. O(capacity)