男女性高爱潮免费网站,免费人成在线观看视频播放,三级三级三级a级全黄,日日摸日日碰夜夜爽无码,国产精品久久久久精品日日,黑人巨大粗物挺进了少妇,国产麻豆一区二区三区精品视频,精品久久久久久亚洲综合网
熱門文章> hashmap1.7和1.8的區別 >

hashmap1.7和1.8的區別

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

| 企服解答

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個工作日內處理。

消息通知
咨詢入駐
商務合作
主站蜘蛛池模板: 女人扒开屁股桶爽30分钟高潮| 九九re6热在线视频精品66| 天堂а√在线中文在线最新版| 国产熟女乱子视频正在播放| 亚洲国产欧美日韩精品一区二区三区| 高级艳妇交换俱乐部小说| 亚洲小说图区综合在线| 777午夜精品免费观看| a毛看片免费观看视频| 国产乱码一区二区三区爽爽爽| 色噜噜狠狠色综合av| 亚洲av综合永久无码精品天堂| 我的乳在厨房被揉搓| 日产幕无线码三区在线| 国产精品免费高清在线观看| 欧美牲交40_50a欧美牲交aⅴ| 加勒比hezyo黑人专区| 国产精品无码无片在线观看3d| 大又大粗又爽又黄少妇毛片| 内射人妻骚骚骚| 女人18片毛片60分钟| 日本xxxxx片免费观看| 国产xxxx视频在线观看| 又色又爽又高潮免费观看| 好爽...又高潮了毛片| japanese精品少妇| 国产欧美日韩a片免费软件| 亚洲乱码精品久久久久..| √新版天堂资源在线资源 | av无码久久久久不卡蜜桃| 国精产品999国精产| 国内精品人妻无码久久久影院| 国产亚洲无线码一区二区| 国产98在线 | 欧美| 熟女人妻视频| a网站在线观看| 韩国三级中文字幕hd| 一个人在线观看免费完整版| 挺进朋友人妻雪白的身体韩国电影 | 成人做爰高潮尖叫声免费观看| 中文字幕精品亚洲一区|