男女性潮高清免费网站,久久精品国产亚洲av麻豆图片,啊灬啊别停灬用力啊岳,国产天堂亚洲国产碰碰,亚洲精品一区二区久久,久久人人爽人人爽人人片av高清 ,久久本道综合久久伊人,伊人情涩网
熱門文章> hashmap1.7和1.8的區別 >

hashmap1.7和1.8的區別

36氪企服點評小編
2022-03-17 17:25
4884次閱讀

| 企服解答

hashmap1.7和1.8的區別:1、JDK1.7用的是頭插法,而JDK1.8及之后使用的都是尾插法;2、擴容后數據存儲位置的計算方式也不一樣;3、JDK1.7的時候使用的是數組+ 單鏈表的數據結構。

hashmap1.7和1.8的區別hashmap1.7和1.8的區別

1、JDK1.7用的是頭插法,而JDK1.8及之后使用的都是尾插法

因為JDK1.7是用單鏈表進行的縱向延伸,當采用頭插法時會容易出現逆序且環形鏈表死循環問題。但是在JDK1.8之后是因為加入了紅黑樹使用尾插法,能夠避免出現逆序且鏈表死循環的問題。

2、擴容后數據存儲位置的計算方式也不一樣

在JDK1.7的時候是直接用hash值和需要擴容的二進制數進行&(這里就是為什么擴容的時候為啥一定必須是2的多少次冪的原因所在,因為如果只有2的n次冪的情況時最后一位二進制數才一定是1,這樣能最大程度減少hash碰撞)(hash值 & length-1)

3、JDK1.7的時候使用的是數組+ 單鏈表的數據結構

在JDK1.8及之后時,使用的是數組+鏈表+紅黑樹的數據結構(當鏈表的深度達到8的時候,也就是默認閾值,就會自動擴容把鏈表轉成紅黑樹的數據結構來把時間復雜度從O(n)變成O(logN)提高了效率)

| 拓展閱讀

hashmap和hashtable的區別是什么?

1、歷史原因不同。Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現。

2、也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,雖然你可以不用采取任何特殊的行為就可以在一個多線程的應用程序中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態的synchronizedMap(方法,它創建一個線程安全的Map對象,并把它作為一個封裝的對象來返回。這個對象的方法可以讓你同步訪問潛在的HashMap。這么做的結果就是當你不需要同步時,你不能切斷Hashtable中的同步(比如在一個單線程的應用程序中),而且同步增加了很多處理費用。

3、只有HashMap可以讓你將空值作為一個表的條目的key或value。HashMap中只有一條記錄可以是一個空的key,但任意數量的條目可以是空的value。這就是說,如果在表中沒有發現搜索鍵,或者如果發現了搜索鍵,但它是一個空的值,那么get()將返回null。如果有必要,用containKey(方法來區別這兩種情況。

[免責聲明]

文章標題: hashmap1.7和1.8的區別

文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。

消息通知
咨詢入駐
商務合作
主站蜘蛛池模板: 熟女乱色一区二区三区| 少妇三级全黄| 熟女无套内射线观56| 最近高清中文在线字幕观看| 朝鲜美女黑毛bbw| 久久天天躁狠狠躁夜夜av浪潮| 亚洲精品熟女国产| 人妻洗澡被强公日日澡电影| 黑人好猛厉害爽受不了好大撑| 成年免费观看黄页网站| 少妇bbbb| 国产美女视频免费的| 大地资源中文在线观看官网第二页| 重口老太大和小伙乱| 久久精品国产亚洲av香蕉| 欧美国产日产一区二区| 小柔在教室轮流澡到高潮视频| 无码国产色欲xxxxx视频| 好姑娘视频在线观看| 性欧美视频videos6一9| 人c交zo○zooxx全过程| 欧美性做爰片k8| jizz成熟丰满| 无码人妻aⅴ一区二区三区有奶水| √天堂网www最新版| 国产亚洲无线码一区二区| 久久综合激激的五月天| 国产无套乱子伦精彩是白视频 | 成·人免费午夜视频| 我们中文在线观看免费完整版| 丰满老熟好大bbb| 日本少妇| 公交车上荫蒂添的好舒服的视频| 麻豆国产传媒精品视频| 一本久久伊人热热精品中文字幕| 国产freexxxx性麻豆| 中文字幕 日韩精品 在线| 欧美国产一区二区三区激情无套| 十九岁在线观看免费完整版| 亚洲av之男人的天堂网站| 2019最新国产不卡a|