這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Java中的Hashtable為什么要小寫而不是駝峰命名,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
桐梓網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),桐梓網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為桐梓超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的桐梓做網(wǎng)站的公司定做!
Hashtable 和 HashMap 是面試中必問的兩個數(shù)據(jù)結(jié)構(gòu)知識點。今天我們就一起來談?wù)?nbsp;Hashtable!
在開始之前,我先來問一個問題,Hashtable 中的 T 為什么不是大寫。我百度谷歌了很久都沒有合理的答案!根據(jù)國外網(wǎng)友的評論得知,Hashtable 之所以沒有遵循駝峰命令是因為當(dāng)初的程序員書寫時產(chǎn)生的 bug,后來雖然 sun 注意到了這個問題。但是考慮到歷史兼容性問題,就選擇了保持原狀!
說起 Hashtable 大家能談到的幾點,無非下面幾點:
相比 HashMap,Hashtable 是線程安全的。因為 Hashtable 的幾個重要方法都加上了 synchronized 關(guān)鍵字。
Hashtable 的 key、value 都不可以為 null。HashMap 最多只允許一條記錄的鍵為 null,允許多條記錄的值為 null。
Hashtable 承自 Dictionary 類,HashMap 繼承自 AbstractMap 類。
Hashtable 已被淘汰,可以使用 ConcurrentHashMap 替代,這一點可以在 Hashtable 源碼中的注釋說明中找出。
Hashtable、HashMap 都使用了 Iterator。而由于歷史原因,Hashtable 還使用了 Enumeration 的方式。
Hashtable 直接使用對象的 hashCode。而 HashMap 重新計算 hash 值。
HashTable 中的 hash 數(shù)組初始大小是 11,增加的方式是 old*2+1。HashMap 中 hash 數(shù)組的默認大小是 16,而且一定是 2 的指數(shù)。
HashMap 有 containsvalue 和 containsKey 兩個方法,Hashtable 使用的是 contains 方法。
HashMap 實現(xiàn)大多都是相同的,也沒什么可以說的。 可以看作是 Hashtable 的輕量級實現(xiàn)。由于 Hashtable 和 HashMap 實現(xiàn)大多都是相同的,也沒什么可以說的。另外 Hashtable 也不在被推薦使用了,所以我建議大家不要在使用它,改用 ConcurrentHashMap。
上述就是小編為大家分享的Java中的Hashtable為什么要小寫而不是駝峰命名了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。