protected static class LruHashMap.Entry<K extends HeapSize,V extends HeapSize> extends Object implements Map.Entry<K,V>, HeapSize
Contains previous and next pointers for the doubly linked-list which is used for LRU eviction.
Instantiations of this class are memory aware. Both the key and value
classes used must also implement HeapSize
.
Modifier and Type | Field and Description |
---|---|
protected int |
hash
The hash value for this entries key
|
protected long |
heapSize
The precomputed heap size of this entry
|
protected K |
key
The key
|
protected LruHashMap.Entry<K,V> |
next
The next entry in the hash chain (for collisions)
|
protected LruHashMap.Entry<K,V> |
nextPtr
The next entry in the LRU list (towards MRU)
|
(package private) static int |
OVERHEAD
The baseline overhead memory usage of this class
|
protected LruHashMap.Entry<K,V> |
prevPtr
The previous entry in the LRU list (towards LRU)
|
protected V |
value
The value
|
Constructor and Description |
---|
LruHashMap.Entry(int h,
K k,
V v,
LruHashMap.Entry<K,V> nextChainPtr,
LruHashMap.Entry<K,V> prevLruPtr)
Create a new entry.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o)
Returns true is the specified entry has the same key and the
same value as this entry.
|
K |
getKey()
Get the key of this entry.
|
protected LruHashMap.Entry<K,V> |
getNextPtr()
Returns the next pointer for the entry in teh LRU.
|
protected LruHashMap.Entry<K,V> |
getPrevPtr()
Returns the previous pointer for the entry in the LRU.
|
V |
getValue()
Get the value of this entry.
|
int |
hashCode()
Returns the hash code of the entry by xor'ing the hash values
of the key and value of this entry.
|
long |
heapSize()
Returns the pre-computed and "deep" size of the Entry
|
protected long |
replaceValue(V newValue)
Replace the value of this entry.
|
protected void |
setNextPtr(LruHashMap.Entry<K,V> nextPtr)
Sets the next pointer for the entry in the LRU.
|
protected void |
setPrevPtr(LruHashMap.Entry<K,V> prevPtr)
Sets the previous pointer for the entry in the LRU.
|
V |
setValue(V newValue)
Set the value of this entry.
|
String |
toString()
Returns String representation of the entry in form "key=value"
|
static final int OVERHEAD
protected final int hash
protected LruHashMap.Entry<K extends HeapSize,V extends HeapSize> next
protected LruHashMap.Entry<K extends HeapSize,V extends HeapSize> prevPtr
protected LruHashMap.Entry<K extends HeapSize,V extends HeapSize> nextPtr
protected long heapSize
LruHashMap.Entry(int h, K k, V v, LruHashMap.Entry<K,V> nextChainPtr, LruHashMap.Entry<K,V> prevLruPtr)
h
- the hash value of the keyk
- the keyv
- the valuenextChainPtr
- the next entry in the hash chain, null if noneprevLruPtr
- the previous entry in the LRUpublic K getKey()
public V getValue()
public V setValue(V newValue)
replaceValue
will return the difference
in heap usage between the previous and current values.protected long replaceValue(V newValue)
newValue
- the new value to associate with this entrypublic boolean equals(Object o)
public int hashCode()
public String toString()
protected void setPrevPtr(LruHashMap.Entry<K,V> prevPtr)
prevPtr
- previous entryprotected LruHashMap.Entry<K,V> getPrevPtr()
protected void setNextPtr(LruHashMap.Entry<K,V> nextPtr)
nextPtr
- next entryprotected LruHashMap.Entry<K,V> getNextPtr()
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.