麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > HashMap與ConcurrentHashMap的區(qū)別?ArrayList與LinkedList有什么區(qū)別

HashMap與ConcurrentHashMap的區(qū)別?ArrayList與LinkedList有什么區(qū)別

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-08-01 11:53:23 1659326003

  HashMap與ConcurrentHashMap的區(qū)別

  在Java編程語(yǔ)言中,最基本的結(jié)構(gòu)就是兩種,一個(gè)是數(shù)組,另外一個(gè)是模擬指針(引用),所有的數(shù)據(jù)結(jié)構(gòu)都可以用這兩個(gè)基本結(jié)構(gòu)來(lái)構(gòu)造的,HashMap也不例外。

  1. HashMap實(shí)際上是一個(gè)“鏈表的數(shù)組”的數(shù)據(jù)結(jié)構(gòu),每個(gè)元素存放鏈表頭結(jié)點(diǎn)的數(shù)組,即數(shù)組和鏈表的結(jié)合體。HashMap底層就是一個(gè)數(shù)組,數(shù)組中的每一項(xiàng)又是一個(gè)鏈表。當(dāng)新建一個(gè)HashMap的時(shí)候,就會(huì)初始化一個(gè)數(shù)組。

  2. ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment是一種可重入鎖ReentrantLock,在ConcurrentHashMap里扮演鎖的角色,HashEntry則用于存儲(chǔ)鍵值對(duì)數(shù)據(jù)。

  3. 一個(gè)ConcurrentHashMap里包含一個(gè)Segment數(shù)組,Segment的結(jié)構(gòu)和HashMap類(lèi)似,是一種數(shù)組和鏈表結(jié)構(gòu), 一個(gè)Segment里包含一個(gè)HashEntry數(shù)組。

  4. 每個(gè)HashEntry是一個(gè)鏈表結(jié)構(gòu)的元素, 每個(gè)Segment守護(hù)者一個(gè)HashEntry數(shù)組里的元素,當(dāng)對(duì)HashEntry數(shù)組的數(shù)據(jù)進(jìn)行修改時(shí),必須首先獲得它對(duì)應(yīng)的Segment鎖。

HashMap與ConcurrentHashMap的區(qū)別

  ArrayList 與 LinkedList有什么區(qū)別?

  因?yàn)?Array 是基于索引(index)的數(shù)據(jù)結(jié)構(gòu),它使用索引在數(shù)組中搜索和讀取數(shù)據(jù)是很快的。Array 獲取數(shù)據(jù)的時(shí)間復(fù)雜度是 O(1),但是要?jiǎng)h除數(shù)據(jù)卻是開(kāi)銷(xiāo)很大的,因?yàn)檫@需要重排數(shù)組中的所有數(shù)據(jù)。

  相對(duì)于 ArrayList,LinkedList 插入是更快的。因?yàn)?LinkedList 不像 ArrayList 一樣,不需要改變數(shù)組的大小,也不需要在數(shù)組裝滿(mǎn)的時(shí)候要將所有的數(shù)據(jù)重新裝入一個(gè)新的數(shù)組,這是 ArrayList 最壞的一種情況,時(shí)間復(fù)雜度是 O(n),而 LinkedList 中插入或刪除的時(shí)間復(fù)雜度僅為 O(1)。ArrayList 在插入數(shù)據(jù)時(shí)還需要更新索引(除了插入數(shù)組的尾部)。

  類(lèi)似于插入數(shù)據(jù),刪除數(shù)據(jù)時(shí),LinkedList 也優(yōu)于 ArrayList。

  LinkedList 需要更多的內(nèi)存,因?yàn)?ArrayList 的每個(gè)索引的位置是實(shí)際的數(shù)據(jù),而 LinkedList 中的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的是實(shí)際的數(shù)據(jù)和前后節(jié)點(diǎn)的位置。

  如果你的應(yīng)用經(jīng)常需要隨機(jī)訪(fǎng)問(wèn)數(shù)據(jù),則考慮使用ArrayList。因?yàn)槿绻枰狶inkedList 中的第 n 個(gè)元素的時(shí)候,你需要從第一個(gè)元素順序數(shù)到第 n 個(gè)數(shù)據(jù),然后讀取數(shù)據(jù)。

  你的應(yīng)用經(jīng)常進(jìn)行插入和刪除元素,更少的讀取數(shù)據(jù),考慮使用LinkedList。因?yàn)椴迦牒蛣h除元素不涉及重排數(shù)據(jù),所以它要比 ArrayList 要快。

  更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢(xún)千鋒教育在線(xiàn)名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專(zhuān)業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問(wèn)題是什么?

ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運(yùn)算符?

Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過(guò)程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36
IT通常說(shuō)的平臺(tái)是什么意思?

在信息技術(shù)(IT)領(lǐng)域,”平臺(tái)”這個(gè)詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開(kāi)發(fā)和運(yùn)行的基礎(chǔ)框架和環(huán)境。以下是對(duì)”平臺(tái)”這個(gè)概念的更深入...詳情>>

2023-10-14 11:55:36
什么是PowerPivot?

什么是PowerPivotPowerPivot,全稱(chēng)”P(pán)owerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過(guò)PowerPivot,...詳情>>

2023-10-14 11:25:48
主站蜘蛛池模板: 好男人社区神马在线观看www| 中文字幕在线播放第一页| 1111| 妞干网免费视频观看| 国产剧情毛片| 日韩福利在线| 国产精品国产三级国快看| 日本一道在线观看| 4480yy私人影院论| 3d动漫精品啪啪一区二区免费| 东北女人下面痒大叫| 调教在线观看| 日本特黄特黄刺激大片| 老子影院午夜| 亚洲黄色免费电影| 国产va免费精品观看精品| 色丁香婷婷| 男人下面进女人下面视频免费| 特黄大片aaaaa毛片| 欧美边吃奶边爱边做视频| 波多野结衣电影一区二区| 国产精华av午夜在线观看| 午夜三级三级三点在线| 吃奶摸下激烈免费视频免费| 高清免费毛片| 岛国视频在线观看免费播放| 午夜dj在线观看免费视频| 欧美成人精品第一区二区三区| 福利二区视频| 精品伊人久久| 7m凹凸精品分类大全免费| 经典三级完整版电影在线观看 | 可以免费观看一级毛片黄a| 国产日日干| 波多野结衣黑丝| 波多野つ上司出差被中在线出| 日本特黄特色aa大片免费| 校草被c呻吟双腿打开bl双性| 男人把女人桶爽30分钟一| 护士们的放荡交换全文| 伊人动漫|