java學習 我眼裡的Map(一)

2021-09-24 12:30:47 字數 884 閱讀 6665

hashmap與hashset之間有什麼關係?

hashset底層就是new hashmap他的key就是hashset存放的元素,value是乙個object

hashmap底層的結構是什麼?

陣列+鍊錶 (如下圖)

hashmap和 hashtable區別是什麼?

hashmap和hashtable原始碼區別:1、乙個執行緒安全乙個不安全2、乙個可以存null鍵null值乙個不可以

3、初始容量不同

hashmap的初始化容量16 每次擴充變為原來的兩倍 ;hashtable的初始化容量是11 每次擴充變為之前的2n+1(n為上一次的長度)

4、計算雜湊值的方法不同

為了得到元素的位置,首先需要根據元素的 key計算出乙個hash值,然後再用這個hash值來計算得到最終的位置

hashtable直接使用物件的hashcode。hashcode是jdk根據物件的位址或者字串或者數字算出來的int型別的數值。然後再使用除留餘數發來獲得最終的位置。 然而除法運算是非常耗費時間的。效率很低

hashmap為了提高計算效率,將雜湊表的大小固定為了2的冪,這樣在取模預算時,不需要做除法,只需要做位運算。位運算比除法的效率要高很多。

我眼裡的「網路語言」

剛剛看了個電視節目,正在討論著關於 網路語言 的問題。有說 網路語言 是一種語言的扭曲,有說它是一種語言的退步 甚至有說由於它的存在已經影響到了對語言的教育和正確使用。對於 網路語言 我有我自己的一些看法。對待事物,從不同的角度去看,往往會有截然相反的結論。再次,目前使用網路的人大部分是青年人或中年...

我眼裡的需求版本控制

當開發人員做了乙個已經被取消的功能,你能想想他有多沮喪 當測試人員按照老的測試案例去測試新的需求規格的開發結果時,他可能要抓狂。出現了這些情況,都是因為需求的版本控制出現了問題。說到需求的版本管理,是不是就是需求文件放到配置庫就可以了呢?答案是 不僅僅如此。因為需求有它的特殊性,有它分析和管理的特殊...

我眼裡的需求版本控制

當開發人員做了乙個已經被取消的功能,你能想想他有多沮喪 當測試人員按照老的測試案例去測試新的需求規格的開發結果時,他可能要抓狂。出現了這些情況,都是因為需求的版本控制出現了問題。需求文件的版本 對整個文件進行版本的管理是最基礎的。當談及最新版本時,專案團隊的成員 應該 都知道它指的是哪個版本的文件,...