国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

貓頭鷹的深夜翻譯:Java WeakHashMap

BothEyes1993 / 2918人閱讀

摘要:本文簡介類概覽類構(gòu)造器總結(jié)類構(gòu)造方法類使用舉例類概覽是一個(gè)實(shí)現(xiàn)了接口,并且鍵為型的哈希表。中的條目不再被正常使用時(shí),會(huì)被自動(dòng)刪除。它的鍵值均支持。和絕大多數(shù)的集合類一樣,這個(gè)類不是同步的。

本文簡介

WeakHashMap類概覽

WeakHashMap類構(gòu)造器總結(jié)

WeakHashMap類構(gòu)造方法

WeakHasjMap類使用舉例

1. WeakHashMap類概覽

WeakHashMap是一個(gè)實(shí)現(xiàn)了Map接口,并且鍵為weak型的哈希表。WeakHashMap中的條目不再被正常使用時(shí),會(huì)被自動(dòng)刪除。它的鍵值均支持null。這個(gè)類類似于HashMap類,也具有初始容量和負(fù)載因子這樣的效率參數(shù)。和絕大多數(shù)的集合類一樣,這個(gè)類不是同步的。需要使用Collections.synchronizedMap方法來進(jìn)行同步控制。弱引用--如果一個(gè)對(duì)象只有一個(gè)弱引用,那么垃圾回收期可以隨時(shí)收回該對(duì)象的內(nèi)存。它不需要等到系統(tǒng)內(nèi)存不足時(shí)才回收。通常,它的內(nèi)存會(huì)在下一次垃圾收集器運(yùn)行時(shí)釋放。

2. WeakHashMap的構(gòu)造器

WeakHashMap(): 構(gòu)造一個(gè)新的,空的WeakHashMap,初始容量為16,負(fù)載因子為0.75

WeakHashMap(int initialCapacity): 構(gòu)造一個(gè)新的,空的WeakHashMap, 初始容量為initialCapacity,負(fù)載因子為0.75

WeakHashMap(int initialCapacity, float loadFactor): 構(gòu)造一個(gè)新的,空的WeakHashMap, 初始容量為initialCapacity,負(fù)載因子為loadFactor

WeakHashMap(Map m): 利用已有的map構(gòu)造WeakHashMap

3. WeakHashMap類的方法

void clear(): 刪除所有的條目

boolean containsKey(Object key): 如果有該鍵,返回true

boolean containsValue(Object value): 如果有一個(gè)或多個(gè)value值,返回true

Set< Map.Entry>entrySet(): 返回鍵值視圖

void forEach(BiConsumer action): 對(duì)此映射中的每個(gè)條目執(zhí)行給定操作,直到處理完所有條目或操作引發(fā)異常。

V get(Object key): 返回指定鍵映射到的值,如果此映射不包含鍵的映射,則返回null。

boolean isEmpty(): 如果此映射不包含鍵 - 值映射,則返回true。

4. WeakHashMap類使用示例
import java.util.Map;
import java.util.Map.Entry;
import java.util.WeakHashMap;
public class WeakHashMapExample {
    public static void main(final String[] args) {
        final Map map = new WeakHashMap<>();
        Key key1 = new Key("ACTIVE");
        final Key key2 = new Key("INACTIVE");
        map.put(key1, new Project(100, "Customer Management System", "Customer Management System"));
        map.put(key2, new Project(200, "Employee Management System", "Employee Management System"));
        key1 = null;
        System.gc();
        for (final Entry entry : map.entrySet()) {
            System.out.println(entry.getKey().getKey() + "   " + entry.getValue());
        }
    }
}
class Key {
    private String key;
    public Key(final String key) {
        super();
        this.key = key;
    }
    public String getKey() {
        return key;
    }
    public void setKey(final String key) {
        this.key = key;
    }
}

輸出:

INACTIVE   [project id : 200, project name : Employee Management System, 
           project desc : Employee Management System ]


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72620.html

相關(guān)文章

  • 頭鷹深夜翻譯:JDK Vs. JRE Vs. JVM之間區(qū)別

    摘要:什么是為執(zhí)行字節(jié)碼提供一個(gè)運(yùn)行環(huán)境。它的實(shí)現(xiàn)主要包含三個(gè)部分,描述實(shí)現(xiàn)規(guī)格的文檔,具體實(shí)現(xiàn)和滿足要求的計(jì)算機(jī)程序以及實(shí)例具體執(zhí)行字節(jié)碼。該類先被轉(zhuǎn)化為一組字節(jié)碼并放入文件中。字節(jié)碼校驗(yàn)器通過字節(jié)碼校驗(yàn)器檢查格式并找出非法代碼。 什么是Java Development Kit (JDK)? JDK通常用來開發(fā)Java應(yīng)用和插件。基本上可以認(rèn)為是一個(gè)軟件開發(fā)環(huán)境。JDK包含Java Run...

    blair 評(píng)論0 收藏0
  • 頭鷹深夜翻譯JavaCAS(Compare And Swap)

    摘要:否則它就會(huì)用新的值替代當(dāng)前值。在這種情況下,鎖可能會(huì)優(yōu)于原子變量,但在實(shí)際的爭用級(jí)別中,原子變量的性能優(yōu)于鎖。在中引入了另外一個(gè)構(gòu)件。 題目要求 在我們深入了解CAS(Compare And Swap)策略以及它是如何在AtomicInteger這樣的原子構(gòu)造器中使用的,首先來看一下這段代碼: public class MyApp { private volatile int ...

    hosition 評(píng)論0 收藏0
  • 頭鷹深夜翻譯Java 10JEP 286-局部變量類型推斷

    摘要:在此基礎(chǔ)上又向前邁進(jìn)了一步局部變量類型推斷允許開發(fā)人員跳過局部變量的類型聲明局部變量是指在方法定義,初始化塊,循環(huán)和其它的如代碼塊,會(huì)推斷該局部變量的類型。 前言 之前面試的時(shí)候問了我是否了解JDK10的變化,一時(shí)回答不出來,所以只回答了JDK8中的函數(shù)式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請(qǐng)參考這里。在所有的JEP中,JEP-...

    chavesgu 評(píng)論0 收藏0
  • 頭鷹深夜翻譯:BlockingQueue和持續(xù)管理

    摘要:我們將使用單個(gè)線程管理任務(wù)放入隊(duì)列的操作以及從隊(duì)列中取出的操作。同時(shí)這個(gè)線程會(huì)持續(xù)的管理隊(duì)列。另一個(gè)線程將用來創(chuàng)建,它將一直運(yùn)行知道服務(wù)器終止。此線程永遠(yuǎn)不會(huì)過期,有助于實(shí)現(xiàn)持續(xù)監(jiān)控。這些請(qǐng)求將會(huì)自動(dòng)的被獲取,并在線程中繼續(xù)處理。 在Java中,BlockingQueue接口位于java.util.concurrent包下。阻塞隊(duì)列主要用來線程安全的實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者模型。他們可以使用...

    YanceyOfficial 評(píng)論0 收藏0
  • 頭鷹深夜翻譯:使用JAVA CompletableFuture20例子

    摘要:這個(gè)例子想要說明兩個(gè)事情中以為結(jié)尾的方法將會(huì)異步執(zhí)行默認(rèn)情況下即指沒有傳入的情況下,異步執(zhí)行會(huì)使用實(shí)現(xiàn),該線程池使用一個(gè)后臺(tái)線程來執(zhí)行任務(wù)。這個(gè)例子展示了如何使用一個(gè)固定大小的線程池來實(shí)現(xiàn)大寫操作。 前言 這篇博客回顧JAVA8的CompletionStageAPI以及其在JAVA庫中的標(biāo)準(zhǔn)實(shí)現(xiàn)CompletableFuture。將會(huì)通過幾個(gè)例子來展示API的各種行為。 因?yàn)镃ompl...

    AZmake 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<