最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎,Java

2023-07-22 10:45 作者:Cloud-yunduo  | 我要投稿
  1. JDK1.7版本的HashMap的數(shù)據(jù)結(jié)構(gòu)是什么?
一維數(shù)組+單向鏈表
  1. HashMap默認初始化容量是多少?
1<<4 -- 16
  1. HashMap容量為什么必須是2的冪?
獲取元素在數(shù)組中的下標是 元素的hash值&數(shù)組的長度-1
如果數(shù)組的長度不是2的冪,-1就會導致二進制中的某幾位都是0,和元素的hash值做&運算,二進制上的某幾位就永遠是0,最終導致下標分布不均勻,浪費空間
  1. HashMap最大容量是多少?
1<<30 -- 1073741824
  1. HashMap最大容量為什么是1<<30?
HashMap容量為int類型,而且容量必須是2的冪
1<<30 是int取值范圍內(nèi)最大的二的冪的數(shù)字
  1. HashMap默認的負載因子是多少?
0.75f
  1. HashMap默認的負載因子為什么是0.75f?
取得了時間和空間的平衡
如果負載因子過大,利用了空間,浪費了時間
如果負載因子過小,利用了時間,浪費了空間
  1. 什么叫做Hash沖突/碰撞?
多個元素的hash值一樣,在數(shù)組中的下標也是一樣的
  1. 怎么避免hash沖突?
根據(jù)對象判斷標準,重寫hashCode和equals即可
  1. HashMap何時擴容?
如果映射關(guān)系個數(shù)大于等于閾值 并且 當前下標上的元素不為null,就擴容
  1. HashMap存放null鍵的位置在哪?
存放在下標為0的位置
  1. HashMap擴容機制是什么?
是原來長度的2倍
  1. JDK1.7版本的HashMap和JDK1.8版本的HashMap有何區(qū)別?
JDK1.7的HashMap
數(shù)據(jù)結(jié)構(gòu):一維數(shù)組+單向鏈表
計算hash值:位運算
單向鏈表插值法:頭插法
JDK1.8的HashMap
數(shù)據(jù)結(jié)構(gòu):一維數(shù)組 + 單向鏈表 + 紅黑樹
一維數(shù)組 + 單向鏈表 -- 鏈表長度>8 && 數(shù)組長度 > 64 --> 一維數(shù)組+紅黑樹 (目的:提高查詢效率)
一維數(shù)組 + 紅黑樹 -- 紅黑樹節(jié)點 < 6 --> 一維數(shù)組 + 單向鏈表
計算hash值:高16位 ^ 低16位(計算更加散列的hash值)
單向鏈表插值法:尾插法



千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎,Java的評論 (共 條)

分享到微博請遵守國家法律
温州市| 延安市| 小金县| 辰溪县| 吴江市| 宜城市| 富阳市| 波密县| 民丰县| 北京市| 岳普湖县| 新安县| 镶黄旗| 栾城县| 兴义市| 都昌县| 古田县| 樟树市| 宁都县| 晋城| 兴山县| 淄博市| 奉化市| 永寿县| 松潘县| 赫章县| 济阳县| 沂水县| 北流市| 萨嘎县| 留坝县| 连城县| 封开县| 上思县| 邹城市| 岑巩县| 犍为县| 淮滨县| 阜南县| 东光县| 六安市|