public class LruCache
extends Object
java.lang.Object | |
↳ | android.support.v4.util.LruCache<K, V> |
静态库版本LruCache
。 用于编写在12之前的API级别上运行的应用程序。在API级别12或更高版本上运行时,此实现仍在使用; 它不会尝试切换到框架的实现。 请参阅框架SDK文档以了解类概述。
Public constructors |
|
---|---|
LruCache(int maxSize) |
Public methods |
|
---|---|
final int |
createCount() 返回 |
final void |
evictAll() 清除缓存,在每个移除的条目上调用 |
final int |
evictionCount() 返回已被驱逐的值的数量。 |
final V |
get(K key) 如果它存在于缓存中,则返回 |
final int |
hitCount() 返回 |
final int |
maxSize() 对于不覆盖 |
final int |
missCount() 返回 |
final V |
put(K key, V value) 缓存 |
final int |
putCount() 返回被调用的次数 |
final V |
remove(K key) 删除条目 |
void |
resize(int maxSize) 设置缓存的大小。 |
final int |
size() 对于不覆盖 |
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) 以用户定义的单位返回 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
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. |
int evictionCount ()
返回已被驱逐的值的数量。
Returns | |
---|---|
int |
V get (K key)
返回key
的值(如果它存在于缓存中)或可由#create
创建。 如果返回值,则将其移至队列头部。 如果值没有被缓存并且不能被创建,则返回null。
Parameters | |
---|---|
key |
K
|
Returns | |
---|---|
V |
V put (K key, V value)
缓存value
为key
。 该值被移动到队列的头部。
Parameters | |
---|---|
key |
K
|
value |
V
|
Returns | |
---|---|
V |
the previous value mapped by key . |
V remove (K key)
删除条目 key
如果存在)。
Parameters | |
---|---|
key |
K
|
Returns | |
---|---|
V |
the previous value mapped by key . |
void resize (int maxSize)
设置缓存的大小。
Parameters | |
---|---|
maxSize |
int : The new maximum size. |
String toString ()
返回对象的字符串表示形式。 一般来说, toString
方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |
void trimToSize (int maxSize)
删除最老的条目,直到剩余条目的总数达到或低于请求的大小。
Parameters | |
---|---|
maxSize |
int : the maximum size of the cache before returning. May be -1 to evict even 0-sized elements. |
V create (K key)
在缓存未命中后调用以计算相应键的值。 返回计算值,如果不能计算值,则返回null。 默认实现返回null。
该方法在没有同步的情况下被调用:其他线程可以在该方法执行时访问缓存。
如果此方法返回时缓存中存在key
的值,则创建的值将与entryRemoved(boolean, K, V, V)
一起释放并丢弃。 当多个线程同时请求同一个键(导致创建多个值)时,或者一个线程调用put(K, V)
而另一个线程为同一个键创建值时,可能会发生这种情况。
Parameters | |
---|---|
key |
K
|
Returns | |
---|---|
V |
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) . |
int sizeOf (K key, V value)
以用户定义的单位返回key
和value
的条目大小。 默认实现返回1,以便size是条目数量,max size是条目的最大数量。
条目的大小在缓存中时不能更改。
Parameters | |
---|---|
key |
K
|
value |
V
|
Returns | |
---|---|
int |