言語

LruCache クラス

定義

限られた数の値への厳密な参照を保持するキャッシュ。

[Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class LruCache : Java.Lang.Object
[<Android.Runtime.Register("android/util/LruCache", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type LruCache = class
    inherit Object
継承
属性

注釈

限られた数の値への厳密な参照を保持するキャッシュ。 値にアクセスするたびに、値はキューの先頭に移動されます。 値が完全キャッシュに追加されると、そのキューの末尾にある値が削除され、ガベージ コレクションの対象になる可能性があります。

キャッシュされた値に明示的に解放する必要があるリソースが保持されている場合は、 #entryRemovedオーバーライドします。

対応するキーに対して必要に応じてキャッシュ ミスを計算する必要がある場合は、 #createをオーバーライドします。 これにより、呼び出し元のコードが簡略化され、キャッシュ ミスが発生した場合でも常に値が返されると想定できます。

既定では、キャッシュ サイズはエントリの数で測定されます。 #sizeOfをオーバーライドして、キャッシュのサイズを異なる単位で設定します。 たとえば、このキャッシュは 4MiB のビットマップに制限されます。

{@code
              int cacheSize = 4 * 1024 * 1024; // 4MiB
              LruCache<String, Bitmap> bitmapCache = new LruCache<String, Bitmap>(cacheSize) {
                  protected int sizeOf(String key, Bitmap value) {
                      return value.getByteCount();
                  }
              }}

このクラスはスレッド セーフです。 キャッシュで同期することで、複数のキャッシュ操作をアトミックに実行します。

{@code
              synchronized (cache) {
                if (cache.get(key) == null) {
                    cache.put(key, value);
                }
              }}

このクラスでは、null をキーまたは値として使用することはできません。 #get#put、または#removeからの null の戻り値は明確です。キーがキャッシュに含まれていませんでした。

このクラスは、Android 3.1 (ハチスタ MR1) に登場しました。これは、以前のリリースの Android のサポート パッケージの 一部として利用できます。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
LruCache(Int32)

指定した最大サイズでキャッシュを初期化します。

LruCache(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
JniPeerMembers

限られた数の値への厳密な参照を保持するキャッシュ。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
Create(Object)

対応するキーの値を計算するためにキャッシュ ミスの後に呼び出されます。

CreateCount()

#create(Object) 返された回数を返します。

Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
EntryRemoved(Boolean, Object, Object, Object)

削除または削除されたエントリに対して呼び出されます。

Equals(Object)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
EvictAll()

キャッシュをクリアし、削除されたエントリごとに #entryRemoved を呼び出します。

EvictionCount()

削除された値の数を返します。

Get(Object)

キャッシュ内に存在する場合、またはkeyによって作成できる場合は、#createの値を返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
HitCount()

キャッシュに既に存在していた値 #get 返された回数を返します。

JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
MaxSize()

#sizeOfをオーバーライドしないキャッシュの場合、キャッシュ内のエントリの最大数が返されます。

MissCount()

null が返 #get 回数、または新しい値を作成する必要がある回数を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Put(Object, Object)

valuekeyをキャッシュします。

PutCount()

#putが呼び出された回数を返します。

Remove(Object)

keyのエントリが存在する場合は削除します。

Resize(Int32)

キャッシュのサイズを設定します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
Size()

#sizeOfをオーバーライドしないキャッシュの場合、キャッシュ内のエントリの数が返されます。

SizeOf(Object, Object)

ユーザー定義単位で key および value のエントリのサイズを返します。

Snapshot()

キャッシュの現在の内容のコピーを返します。最新のアクセスから最近アクセスされた内容まで順に並べ替えます。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

このオブジェクトの人間が判読できる簡潔な説明を含む文字列を返します。

TrimToSize(Int32)

残りのエントリの合計が要求されたサイズ以下になるまで、長いエントリを削除します。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
IJavaPeerable.Finalized()

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

限られた数の値への厳密な参照を保持するキャッシュ。

(継承元 JavaObject)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

限られた数の値への厳密な参照を保持するキャッシュ。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象