日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS LruBuffer

LruBuffer

java.lang.Object

|---ohos.utils.LruBuffer

public class LruBuffer
extends Object

一種緩存類,當(dāng)容量不足以存儲新值時,使用最近最少使用 (LRU) 算法刪除最近最少訪問的值。

您可以指定緩沖區(qū)的容量。當(dāng)緩沖區(qū)中的鍵值對數(shù)量超過其預(yù)設(shè)容量時,LRU算法生效。具體來說,最近最少訪問的鍵值對將被刪除,以便為新的鍵值對騰出空間。您還可以重置緩沖區(qū)容量。如果新設(shè)置的緩沖區(qū)容量小于已存儲的鍵值對的數(shù)量,則觸發(fā)LRU算法刪除最近最少訪問的鍵值對。以下方法具有訪問令牌:put(java.lang.Object,java.lang.Object), get(java.lang.Object), contains(java.lang.Object)。如果其中一個已被成功調(diào)用并且已經(jīng)對一個值執(zhí)行了實(shí)際操作,該值將被標(biāo)記為最近訪問的值,因此它在緩沖區(qū)滿時的自動清除將被推遲。

該類的大部分方法都支持同步機(jī)制,因此可以在多線程或并發(fā)場景中使用。該類還提供了getMatchCount()、getMissCount()和getPutCount()方法,用于獲取存儲的key-value對的訪問統(tǒng)計(jì)信息,包括匹配的查詢key-value對的總數(shù)、不匹配的查詢key-value對的總數(shù)、并添加了鍵值對。

另外,您可以重寫該類中的afterRemoval(boolean,java.lang.Object,java.lang.Object,java.lang.Object)方法,在存儲的鍵值對被刪除或自動清除后進(jìn)行后續(xù)操作。注意:緩沖區(qū)容量不能設(shè)置為0,key或value不能為null。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù)描述
LruBuffer()默認(rèn)構(gòu)造函數(shù)用于創(chuàng)建一個新的 LruBuffer 實(shí)例,默認(rèn)容量為 64。
LruBuffer(int capacity)用于創(chuàng)建新 LruBuffer 實(shí)例的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型方法描述
protected voidafterRemoval(boolean isEvict, K key, V value, V newValue)刪除值后執(zhí)行后續(xù)操作。
intcapacity()獲取當(dāng)前緩沖區(qū)的容量。
voidclear()從當(dāng)前緩沖區(qū)中清除鍵值對。
booleancontains(K key)檢查當(dāng)前緩沖區(qū)是否包含指定的鍵。
protected VcreateDefault(K key)如果未命中,則執(zhí)行后續(xù)操作以計(jì)算特定鍵的值。
Vget(K key)獲取與指定鍵關(guān)聯(lián)的值。
intgetCreateCount()獲取 createDefault(java.lang.Object) 返回值的次數(shù)。
intgetMatchCount()獲取查詢值匹配成功的次數(shù)。
intgetMissCount()獲取查詢值不匹配的次數(shù)。
intgetPutCount()獲取將值添加到緩沖區(qū)的次數(shù)。
intgetRemovalCount()獲取從緩沖區(qū)中逐出值的次數(shù)。
booleanisEmpty()檢查當(dāng)前緩沖區(qū)是否為空。
ListKkeys()獲取當(dāng)前緩沖區(qū)中值的鍵列表。
Vput(K key, V value)將鍵值對添加到緩沖區(qū)。
OptionalVremove(K key)從當(dāng)前緩沖區(qū)中刪除指定的鍵及其關(guān)聯(lián)的值。
intsize()獲取當(dāng)前緩沖區(qū)中值的總數(shù)。
StringtoString()返回對象的字符串表示形式。
voidupdateCapacity(int newCapacity)將緩沖區(qū)容量更新為指定容量。
ListVvalues()獲取當(dāng)前緩沖區(qū)中所有值的列表。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細(xì)信息

LruBuffer

public LruBuffer()

默認(rèn)構(gòu)造函數(shù)用于創(chuàng)建一個新的 LruBuffer 實(shí)例,默認(rèn)容量為 64。

LruBuffer

public LruBuffer(int capacity)

用于創(chuàng)建新 LruBuffer 實(shí)例的構(gòu)造函數(shù)。

參數(shù):

參數(shù)名稱參數(shù)描述
capacity指示為緩沖區(qū)自定義的容量。

Throws:

Throw名稱Throw描述
IllegalArgumentException如果容量小于或等于 0,則引發(fā)此異常。

方法詳情

afterRemoval

protected void afterRemoval(boolean isEvict, K key, V value, V newValue)

刪除值后執(zhí)行后續(xù)操作。

當(dāng)使用 remove(java.lang.Object)、clear()、put(java.lang.Object,java.lang.Object) 或 updateCapacity(int) 方法時,會自動調(diào)用此方法。 您可以根據(jù)存儲值的特性來決定是否覆蓋該方法。

參數(shù):

參數(shù)名稱參數(shù)描述
isEvict因容量不足而調(diào)用該方法時參數(shù)值為真,其他情況下參數(shù)值為假。
key表示已刪除的密鑰。
value表示刪除的值。
newValue如果調(diào)用了 put(java.lang.Object,java.lang.Object) 方法并且要添加的鍵已經(jīng)存在,則參數(shù)值是關(guān)聯(lián)的新值。 其他情況下參數(shù)值為空。

createDefault

protected V createDefault(K key)

如果未命中,則執(zhí)行后續(xù)操作以計(jì)算特定鍵的值。

如果在 get(java.lang.Object) 錯過計(jì)算鍵的值之后,會自動調(diào)用此方法。 您可以根據(jù)存儲值的特性來決定是否覆蓋該方法。

參數(shù):

參數(shù)名稱參數(shù)描述
key表示遺漏的鍵。

返回:

返回與鍵關(guān)聯(lián)的值。

capacity

public final int capacity()

獲取當(dāng)前緩沖區(qū)的容量。

返回:

返回當(dāng)前緩沖區(qū)的容量。

clear

public final void clear()

從當(dāng)前緩沖區(qū)中清除鍵值對。 當(dāng)鍵值對被清除后,調(diào)用 afterRemoval(boolean,java.lang.Object,java.lang.Object,java.lang.Object) 方法依次對其執(zhí)行后續(xù)操作。

getMatchCount

public final int getMatchCount()

獲取查詢值匹配成功的次數(shù)。

返回:

返回查詢值匹配成功的次數(shù)。

getMissCount

public final int getMissCount()

獲取查詢值不匹配的次數(shù)。

返回:

返回查詢值不匹配的次數(shù)。

getPutCount

public final int getPutCount()

獲取將值添加到緩沖區(qū)的次數(shù)。

返回:

返回將值添加到緩沖區(qū)的次數(shù)。

contains

public final boolean contains(K key)

檢查當(dāng)前緩沖區(qū)是否包含指定的鍵。

參數(shù):

參數(shù)名稱參數(shù)描述
key表示要檢查的鍵。

返回:

如果緩沖區(qū)包含指定的鍵,則返回 true。

get

public final V get(K key)

獲取與指定鍵關(guān)聯(lián)的值。

參數(shù):

參數(shù)名稱參數(shù)描述
key表示要查詢的鍵。

返回:

如果指定的鍵存在于緩沖區(qū)中,則返回與鍵關(guān)聯(lián)的值; 否則返回 null。

getCreateCount

public final int getCreateCount()

獲取 createDefault(java.lang.Object) 返回值的次數(shù)。

返回:

返回 createDefault(java.lang.Object) 返回值的次數(shù)。

isEmpty

public final boolean isEmpty()

檢查當(dāng)前緩沖區(qū)是否為空。

返回:

如果當(dāng)前緩沖區(qū)不包含任何值,則返回 true。

keys

public final ListK keys()

獲取當(dāng)前緩沖區(qū)中值的鍵列表。

返回:

返回從最近訪問到最近訪問最少的鍵列表。

put

public final V put(K key, V value)

將鍵值對添加到緩沖區(qū)。

如果當(dāng)前緩沖區(qū)已滿,最近最少訪問的鍵值對將被自動清除,為添加新的鍵值對騰出空間。 如果要添加的鍵已經(jīng)存在于緩沖區(qū)中,則其關(guān)聯(lián)的值將替換為要添加的值。

參數(shù):

參數(shù)名稱參數(shù)描述
key表示要添加的鍵。
value指示與要添加的鍵關(guān)聯(lián)的值。

返回:

返回與添加的鍵關(guān)聯(lián)的值; 如果要添加的鍵已經(jīng)存在,則返回原始值。

Throws:

Throw名稱Throw描述
NullPointerException如果 key 或 value 為 null,則引發(fā)此異常。

getRemovalCount

public final int getRemovalCount()

獲取從緩沖區(qū)中逐出值的次數(shù)。

返回:

返回從緩沖區(qū)中逐出值的次數(shù)。

remove

public final OptionalV remove(K key)

從當(dāng)前緩沖區(qū)中刪除指定的鍵及其關(guān)聯(lián)的值。

關(guān)聯(lián)值刪除后,會自動調(diào)用 afterRemoval(boolean,java.lang.Object,java.lang.Object,java.lang.Object) 方法對刪除的值進(jìn)行后續(xù)操作。

參數(shù):

參數(shù)名稱參數(shù)描述
key表示要刪除的鍵。

返回:

返回一個包含已刪除鍵值對的 Optional 對象; 如果鍵不存在,則返回一個空的 Optional 對象。

Throws:

Throw名稱Throw描述
NullPointerException如果 key 為 null,則引發(fā)此異常。

size

public final int size()

獲取當(dāng)前緩沖區(qū)中值的總數(shù)。

返回:

返回當(dāng)前緩沖區(qū)中值的總數(shù)。

toString

public String toString()

從類復(fù)制的描述:對象

返回對象的字符串表示形式。 通常,toString 方法返回一個“以文本方式表示”該對象的字符串。 結(jié)果應(yīng)該是一個簡潔但信息豐富的表示,易于人們閱讀。 建議所有子類重寫此方法。

Object 類的 toString 方法返回一個字符串,該字符串由對象作為其實(shí)例的類的名稱、at 符號字符“@”和對象哈希碼的無符號十六進(jìn)制表示形式組成。 換句話說,此方法返回一個等于以下值的字符串:

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

覆蓋:

類 Object 中的 toString

返回:

對象的字符串表示形式。

updateCapacity

public final void updateCapacity(int newCapacity)

將緩沖區(qū)容量更新為指定容量。

如果指定的容量小于緩沖區(qū)中存儲的值的總數(shù),則根據(jù)最近最少訪問到最近訪問的訪問頻率清除值,直到數(shù)量等于指定容量。

參數(shù):

參數(shù)名稱參數(shù)描述
newCapacity表示要設(shè)置的新容量。

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 newCapacity 小于或等于 0,則拋出此異常。

values

public final ListV values()

獲取當(dāng)前緩沖區(qū)中所有值的列表。

返回:

按升序返回當(dāng)前緩沖區(qū)中所有值的列表,從最近訪問到最近訪問最少。


文章標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS LruBuffer
文章地址:http://www.5511xx.com/article/cddjsss.html