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

資訊專欄INFORMATION COLUMN

Hashtable 為什么不叫 HashTable?

sugarmo / 593人閱讀

摘要:棧長看了下,確實(shí)是添加的,最早的一個(gè)集合類,這樣也說得過去。那為什么不在后面的版本中修復(fù)它呢可能是為了考慮兼容使用老版本的系統(tǒng)吧。棧長又去證實(shí)了下,沒有和這個(gè)類,所有開頭的并發(fā)類和接口都在這里了。

前幾天在寫《HashMap 和 Hashtable 的 6 個(gè)區(qū)別》這篇文章的時(shí)候,差點(diǎn)把 Hashtable 寫成了 HashTable,后來看源碼證實(shí)了是:Hashtable,小寫的 "t"able,不符合駝峰命名規(guī)則。

什么是駝峰命名規(guī)則,來看下面的關(guān)鍵字:

HashMap

ArrayList

ConcurrentHashMap

簡單來說就是,標(biāo)識(shí)符的每個(gè)單詞首字母必須大寫,看起來像是駝峰的形狀。

當(dāng)時(shí)就很好奇,Hashtable 為什么不是 HashTable 呢?作為一名初級(jí)的 Java 程序員都應(yīng)該知道的基本的駝峰命名規(guī)則,為什么 JDK 代碼里面還有這種不規(guī)范的命名呢?

我想大家應(yīng)該都比較好奇,我特意去查了下資料,沒有查到官方的說法,不過在 stackoverflow 上看到了同樣的這個(gè)問題。

原貼如下:

https://stackoverflow.com/que...

最佳答案是:

Hashtable was created in Java v1. The consistent naming conventions for collections were established later, in Java2, when the other classes were published as part of the brand new Java Collection Framework.

Which btw made Hashtable obsolete, so it should not be used in new code.

Hope that helps.

意思就是:

Hashtable 是在 Java 1.0 的時(shí)候創(chuàng)建的,而集合的統(tǒng)一規(guī)范命名是在后來的 Java 2 開始約定的,當(dāng)時(shí)其他一部分集合類的發(fā)布構(gòu)成了新的集合框架。

順便說一下,這樣就使得 Hashtable 過時(shí)了,所以不應(yīng)該在新代碼中繼續(xù)使用它。

棧長看了下,Hashtable 確實(shí)是 JDK1.0 添加的,最早的一個(gè)集合類,這樣也說得過去。那為什么不在后面的 JDK 版本中修復(fù)它呢?可能是為了考慮兼容使用 JDK 老版本的系統(tǒng)吧。所以就將錯(cuò)就錯(cuò)封存在了 JDK,直到現(xiàn)在 JDK 11 了也還沒有修復(fù)或者考慮刪除它。

另外,關(guān)于《HashMap 和 Hashtable 的 6 個(gè)區(qū)別》,有人留言說可以使用 currenthashtable。

棧長又去證實(shí)了下,沒有 currenthashtable 和 concurrenthashtable 這個(gè)類,所有 concurrent* 開頭的并發(fā)類和接口都在這里了。

好了,關(guān)于 Hashtable 的迷惑就此全都解開了。

所有 Java JVM、多線程、集合、新特性等系列文章請(qǐng)?jiān)谖⑿殴娞?hào) “Java技術(shù)棧” 后臺(tái)回復(fù)關(guān)鍵字:java,后續(xù)也會(huì)不斷更新。

有收獲?轉(zhuǎn)發(fā)給更多的人吧!

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),關(guān)注公眾號(hào)在后臺(tái)回復(fù) "java" 可獲取更多,轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>

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

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

相關(guān)文章

  • HashMap 和 Hashtable 的 6 個(gè)區(qū)別,最后一個(gè)沒幾個(gè)人知道!

    摘要:線程安全是線程安全的,不是線程安全的。是添加的,貌似沒人用過這個(gè),棧長我也沒用過。。最后一點(diǎn)有幾個(gè)人知道知道的給棧長點(diǎn)個(gè)贊回應(yīng)一下,不知道的有收獲的也點(diǎn)一個(gè)贊支持一下吧。 HashMap 和 Hashtable 是 Java 開發(fā)程序員必須要掌握的,也是在各種 Java 面試場(chǎng)合中必須會(huì)問到的。 但你對(duì)這兩者的區(qū)別了解有多少呢? 現(xiàn)在,棧長我給大家總結(jié)一下,或許有你不明朗的地方,在棧長...

    xiguadada 評(píng)論0 收藏0
  • 每周一練 之 數(shù)據(jù)結(jié)構(gòu)與算法(Dictionary 和 HashTable

    摘要:什么是散列表和散列函數(shù)哈希表,也叫散列表,是根據(jù)關(guān)鍵碼值而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。根據(jù)鍵值從散列表中移除值。請(qǐng)實(shí)現(xiàn)散列表將和存在一個(gè)對(duì)象中即可定義一個(gè)包含和屬性的類并分配到散列表。 showImg(https://segmentfault.com/img/remote/1460000019005270); 這是第五周的練習(xí)題,上周忘記發(fā)啦,這周是復(fù)習(xí) Dictionary 和 Hash...

    eternalshallow 評(píng)論0 收藏0
  • 每周一練 之 數(shù)據(jù)結(jié)構(gòu)與算法(Dictionary 和 HashTable

    摘要:什么是散列表和散列函數(shù)哈希表,也叫散列表,是根據(jù)關(guān)鍵碼值而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。將字典的所有鍵名以數(shù)組的形式返回。根據(jù)鍵值從散列表中移除值。這是第五周的練習(xí)題,上周忘記發(fā)啦,這周是復(fù)習(xí) Dictionary 和 HashTable。 下面是之前分享的鏈接: 1.每周一練 之 數(shù)據(jù)結(jié)構(gòu)與算法(Stack) 2.每周一練 之 數(shù)據(jù)結(jié)構(gòu)與算法(LinkedList) 3.每周一練 之 數(shù)據(jù)結(jié)構(gòu)...

    ingood 評(píng)論0 收藏0
  • jdk7中HashMap知識(shí)點(diǎn)整理

    摘要:再最壞的情況下,鏈表查找的時(shí)間復(fù)雜度為而紅黑樹一直是這樣會(huì)提高的效率。中的中定義了一個(gè)變量,當(dāng)節(jié)點(diǎn)個(gè)數(shù)時(shí),將采用紅黑樹存儲(chǔ)參考資料和的區(qū)別和的區(qū)別 HashMap中的幾個(gè)重要變量 默認(rèn)初始容量,必須是2的n次方 static final int DEFAULT_INITIAL_CAPACITY = 16; 最大容量,當(dāng)通過構(gòu)造方法傳入的容量比它還大時(shí),就用這個(gè)最大容量,必須是2的n...

    AJie 評(píng)論0 收藏0
  • php底層HashTable的實(shí)現(xiàn)

    摘要:底層的實(shí)現(xiàn)有兩個(gè)非常重要的結(jié)構(gòu)分別是和。簡單來說就是哈希表的結(jié)構(gòu)維護(hù)了哈希表中插入元素的先后順序,哈希表結(jié)構(gòu)維護(hù)了整個(gè)哈希表的頭和尾。在操作哈希表的過程中始終保持預(yù)算之間的關(guān)系。 HashTable對(duì)PHP來說是一種非常重要的數(shù)據(jù)結(jié)構(gòu)。很多PHP的內(nèi)部實(shí)現(xiàn)(變量的作用域,函數(shù)表,類的屬性、方法,數(shù)組)就是通過HashTable來實(shí)現(xiàn)的。最近了解了一下PHP底層HashTable的實(shí)現(xiàn)。...

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

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

0條評(píng)論

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