Skip to content

Documentation / @andrew_l/toolkit / LruCache

Class: LruCache<TKey, TValue> ​

A simple implementation of a Least Recently Used (LRU) cache. This cache stores key-value pairs and ensures that the most recently accessed items are kept in the cache, while the least recently used items are evicted when the cache reaches its capacity.

The cache is implemented as a doubly linked list where the head represents the most recently accessed item, and the tail represents the least recently accessed item. When the cache is full, the least recently used item (tail) is removed to make space for new items.

Type Parameters ​

TKey ​

TKey = any

TValue ​

TValue = any

Constructors ​

Constructor ​

new LruCache<TKey, TValue>(capacity): LruCache<TKey, TValue>

Parameters ​

capacity ​

number

Returns ​

LruCache<TKey, TValue>

Properties ​

size ​

size: number

Methods ​

[iterator]() ​

[iterator](): object

Returns ​

object

[iterator]() ​

[iterator](): { [Symbol.iterator](): ...; next(): { done: boolean; value: undefined; } | { done: boolean; value: (TKey | TValue | undefined)[]; }; }

Returns ​

{ [Symbol.iterator](): ...; next(): { done: boolean; value: undefined; } | { done: boolean; value: (TKey | TValue | undefined)[]; }; }

next() ​

next(): { done: boolean; value: undefined; } | { done: boolean; value: (undefined | TKey | TValue)[]; }

Returns ​

{ done: boolean; value: undefined; } | { done: boolean; value: (undefined | TKey | TValue)[]; }


clear() ​

clear(): void

Method used to clear the structure.

Returns ​

void


delete() ​

delete(key): void

Parameters ​

key ​

TKey

Returns ​

void


entries() ​

entries(): object

Method used to create an iterator over the cache's entries from most recently used to least recently used.

Returns ​

object

[iterator]() ​

[iterator](): { [Symbol.iterator](): ...; next(): { done: boolean; value: undefined; } | { done: boolean; value: (TKey | TValue | undefined)[]; }; }

Returns ​

{ [Symbol.iterator](): ...; next(): { done: boolean; value: undefined; } | { done: boolean; value: (TKey | TValue | undefined)[]; }; }

next() ​

next(): { done: boolean; value: undefined; } | { done: boolean; value: (undefined | TKey | TValue)[]; }

Returns ​

{ done: boolean; value: undefined; } | { done: boolean; value: (undefined | TKey | TValue)[]; }


get() ​

get(key): undefined | TValue

Parameters ​

key ​

TKey

Returns ​

undefined | TValue


has() ​

has(key): boolean

Parameters ​

key ​

TKey

Returns ​

boolean


keys() ​

keys(): IterableIterator<TKey>

Method used to create an iterator over the cache's keys from most recently used to least recently used.

Returns ​

IterableIterator<TKey>


peek() ​

peek(key): undefined | TValue

Method used to get the value attached to the given key. Does not modify the ordering of the underlying linked list.

Parameters ​

key ​

TKey

Returns ​

undefined | TValue


set() ​

set(key, value): this

Parameters ​

key ​

TKey

value ​

TValue

Returns ​

this


splayOnTop() ​

splayOnTop(pointer): this

Method used to splay a value on top.

Parameters ​

pointer ​

number

Pointer of the value to splay on top.

Returns ​

this


values() ​

values(): IterableIterator<TValue>

Method used to create an iterator over the cache's values from most recently used to least recently used.

Returns ​

IterableIterator<TValue>