Most visited

Recently visited

LruCache

public class LruCache
extends Object

java.lang.Object
   ↳ android.support.v4.util.LruCache<K, V>


静态库版本LruCache 用于编写在12之前的API级别上运行的应用程序。在API级别12或更高版本上运行时,此实现仍在使用; 它不会尝试切换到框架的实现。 请参阅框架SDK文档以了解类概述。

Summary

Public constructors

LruCache(int maxSize)

Public methods

final int createCount()

返回 create(Object)返回值的次数。

final void evictAll()

清除缓存,在每个移除的条目上调用 entryRemoved(boolean, K, V, V)

final int evictionCount()

返回已被驱逐的值的数量。

final V get(K key)

如果它存在于缓存中,则返回 key的值,或者可以由 #create创建。

final int hitCount()

返回 get(K)返回缓存中已经存在的值的次数。

final int maxSize()

对于不覆盖 sizeOf(K, V)缓存,这将返回缓存中的最大条目数。

final int missCount()

返回 get(K)返回null或要求创建新值的次数。

final V put(K key, V value)

缓存 valuekey

final int putCount()

返回被调用的次数 put(K, V)

final V remove(K key)

删除条目 key如果存在)。

void resize(int maxSize)

设置缓存的大小。

final int size()

对于不覆盖 sizeOf(K, V)缓存,这将返回缓存中的条目数。

final Map<K, V> snapshot()

返回缓存中当前内容的副本,从最近最少访问到最近访问的顺序排列。

final String toString()

返回对象的字符串表示形式。

void trimToSize(int maxSize)

删除最老的条目,直到剩余条目的总数达到或低于请求的大小。

Protected methods

V create(K key)

在缓存未命中后调用以计算相应键的值。

void entryRemoved(boolean evicted, K key, V oldValue, V newValue)

呼叫已被驱逐或删除的条目。

int sizeOf(K key, V value)

以用户定义的单位返回 keyvalue的条目大小。

Inherited methods

From class java.lang.Object

Public constructors

LruCache

LruCache (int maxSize)

Parameters
maxSize int: for caches that do not override sizeOf(K, V), this is the maximum number of entries in the cache. For all other caches, this is the maximum sum of the sizes of the entries in this cache.

Public methods

createCount

int createCount ()

返回 create(Object)返回值的次数。

Returns
int

evictAll

void evictAll ()

清除缓存,在每个删除的条目上调用 entryRemoved(boolean, K, V, V)

evictionCount

int evictionCount ()

返回已被驱逐的值的数量。

Returns
int

get

V get (K key)

返回key的值(如果它存在于缓存中)或可由#create创建。 如果返回值,则将其移至队列头部。 如果值没有被缓存并且不能被创建,则返回null。

Parameters
key K
Returns
V

hitCount

int hitCount ()

返回 get(K)返回缓存中已经存在的值的次数。

Returns
int

maxSize

int maxSize ()

对于不覆盖sizeOf(K, V)缓存,这将返回缓存中的最大条目数。 对于所有其他缓存,这将返回此缓存中条目大小的最大总和。

Returns
int

missCount

int missCount ()

返回 get(K)返回null或要求创建新值的次数。

Returns
int

put

V put (K key, 
                V value)

缓存valuekey 该值被移动到队列的头部。

Parameters
key K
value V
Returns
V the previous value mapped by key.

putCount

int putCount ()

返回被调用的次数 put(K, V)

Returns
int

remove

V remove (K key)

删除条目 key如果存在)。

Parameters
key K
Returns
V the previous value mapped by key.

resize

void resize (int maxSize)

设置缓存的大小。

Parameters
maxSize int: The new maximum size.

size

int size ()

对于不覆盖sizeOf(K, V)缓存,这将返回缓存中的条目数。 对于所有其他缓存,这将返回此缓存中条目的大小总和。

Returns
int

snapshot

Map<K, V> snapshot ()

返回缓存中当前内容的副本,从最近最少访问到最近访问的顺序排列。

Returns
Map<K, V>

toString

String toString ()

返回对象的字符串表示形式。 一般来说, toString方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

trimToSize

void trimToSize (int maxSize)

删除最老的条目,直到剩余条目的总数达到或低于请求的大小。

Parameters
maxSize int: the maximum size of the cache before returning. May be -1 to evict even 0-sized elements.

Protected methods

create

V create (K key)

在缓存未命中后调用以计算相应键的值。 返回计算值,如果不能计算值,则返回null。 默认实现返回null。

该方法在没有同步的情况下被调用:其他线程可以在该方法执行时访问缓存。

如果此方法返回时缓存中存在key的值,则创建的值将与entryRemoved(boolean, K, V, V)一起释放并丢弃。 当多个线程同时请求同一个键(导致创建多个值)时,或者一个线程调用put(K, V)而另一个线程为同一个键创建值时,可能会发生这种情况。

Parameters
key K
Returns
V

entryRemoved

void entryRemoved (boolean evicted, 
                K key, 
                V oldValue, 
                V newValue)

呼叫已被驱逐或删除的条目。 当值被驱逐,以腾出空间,通过调用除去这种方法被调用remove(K) ,或通过向呼叫替换put(K, V) 默认实现什么都不做。

该方法在没有同步的情况下被调用:其他线程可以在该方法执行时访问缓存。

Parameters
evicted boolean: true if the entry is being removed to make space, false if the removal was caused by a put(K, V) or remove(K).
key K
oldValue V
newValue V: the new value for key, if it exists. If non-null, this removal was caused by a put(K, V). Otherwise it was caused by an eviction or a remove(K).

sizeOf

int sizeOf (K key, 
                V value)

以用户定义的单位返回keyvalue的条目大小。 默认实现返回1,以便size是条目数量,max size是条目的最大数量。

条目的大小在缓存中时不能更改。

Parameters
key K
value V
Returns
int

Hooray!