日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java一些八卦集合类

發(fā)布時(shí)間:2023/12/31 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java一些八卦集合类 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Map 和 Set關(guān)系

Map和Set事實(shí)基礎(chǔ)的朋友,有著千絲萬縷的聯(lián)系。

Map它可以被看作是Set延期。從何時(shí)起Set內(nèi)容存儲(chǔ)在key-value的值當(dāng)表單。這個(gè)Set實(shí)際上可以作為Map使用。反過來,Map事實(shí)上,有一個(gè)Map.Entry內(nèi)部接口。而Map在存放值對時(shí),全然不考慮value,而僅僅考慮key,因此Map也能夠看成是一個(gè)存key的Set,而value僅僅是key的附屬物。

HashMap加入元素時(shí),依據(jù)key的hashCode進(jìn)行再哈希計(jì)算得到值來決定存放位置。HashMap底層有個(gè)數(shù)組Entry[],依據(jù)hash值來決定key-value存在數(shù)組的哪個(gè)元素,而Entry[]實(shí)際上是一個(gè)table。

HashSet底層是居于HashMap來實(shí)現(xiàn)的。HashSet底層用HashMap來保存全部元素,這些元素作為HashMap的key,而相應(yīng)的Value是一個(gè)名為PRESENT的static final的Object對象。對HashSet操作的方法都調(diào)用HashMap的方法進(jìn)行操作。

元素是否反復(fù),要同一時(shí)候推斷元素對象的hashCode()和equals(),hashCode相等且equals返還true時(shí)才覺得是反復(fù)元素,不進(jìn)行替換。

TreeSet和TreeMap的關(guān)系也是非常相似的,即TreeSet底層是採用TreeMap存儲(chǔ)的。TreeMap採用紅黑樹的排序二叉樹來保存Map中的每一個(gè)Entry(樹節(jié)點(diǎn))。

?

List的三個(gè)實(shí)現(xiàn):ArrayList,Vector和LinkedList。

Vector還有個(gè)兒子Stack,Stack不過在Vector的基礎(chǔ)上加入了5個(gè)方法,只五個(gè)方法的代碼就將Vector變成了Stack,Stack依舊是一個(gè)Vector,它繼承了Vector的synchronized血統(tǒng),都是線程安全的。從JDK1.6開始,Java提供了Deque接口并提供了實(shí)現(xiàn)類ArrayDeque,即使程序中須要棧這種數(shù)據(jù)結(jié)構(gòu),也不推薦使用Stack而推薦使用Deque。除非要求線程安全。

Deque是雙端隊(duì)列。是隊(duì)列但同一時(shí)候擁有棧的功能。底層都是數(shù)組實(shí)現(xiàn)。

Vector差點(diǎn)兒被ArrayList取代了,它唯一的優(yōu)點(diǎn)是線程安全。

如今甚至為了線程安全也不用Vector了。能夠通過Collections工具類的synchronizedList()方法將一個(gè)普通的ArrayList包裝成線程安全的ArrayList。

?

ArrayList 和LinkedList

ArrayList底層是基于數(shù)組實(shí)現(xiàn)的。所以ArrayList創(chuàng)建的時(shí)候有個(gè)初始的capacity,提供了構(gòu)造方法,編程者能夠在創(chuàng)建ArrayList時(shí)指定初始的capacity。假設(shè)沒有顯式提供capacity,那么程序默認(rèn)設(shè)置為10.LinkedList是雙向列表存儲(chǔ)結(jié)構(gòu),不僅實(shí)現(xiàn)List接口,還實(shí)現(xiàn)Deque雙端隊(duì)列接口。

版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的Java一些八卦集合类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。