您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Java中的Hashtable為什么要小寫而不是駝峰命名,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Hashtable 和 HashMap 是面試中必問的兩個數據結構知識點。今天我們就一起來談談 Hashtable!
在開始之前,我先來問一個問題,Hashtable 中的 T 為什么不是大寫。我百度谷歌了很久都沒有合理的答案!根據國外網友的評論得知,Hashtable 之所以沒有遵循駝峰命令是因為當初的程序員書寫時產生的 bug,后來雖然 sun 注意到了這個問題。但是考慮到歷史兼容性問題,就選擇了保持原狀!
說起 Hashtable 大家能談到的幾點,無非下面幾點:
相比 HashMap,Hashtable 是線程安全的。因為 Hashtable 的幾個重要方法都加上了 synchronized 關鍵字。
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 數組初始大小是 11,增加的方式是 old*2+1。HashMap 中 hash 數組的默認大小是 16,而且一定是 2 的指數。
HashMap 有 containsvalue 和 containsKey 兩個方法,Hashtable 使用的是 contains 方法。
HashMap 實現大多都是相同的,也沒什么可以說的。 可以看作是 Hashtable 的輕量級實現。由于 Hashtable 和 HashMap 實現大多都是相同的,也沒什么可以說的。另外 Hashtable 也不在被推薦使用了,所以我建議大家不要在使用它,改用 ConcurrentHashMap。
上述就是小編為大家分享的Java中的Hashtable為什么要小寫而不是駝峰命名了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。