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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java一些八卦集合类

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

Map 和 Set關系

Map和Set事實基礎的朋友,有著千絲萬縷的聯系。

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

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

HashSet底層是居于HashMap來實現的。HashSet底層用HashMap來保存全部元素,這些元素作為HashMap的key,而相應的Value是一個名為PRESENT的static final的Object對象。對HashSet操作的方法都調用HashMap的方法進行操作。

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

TreeSet和TreeMap的關系也是非常相似的,即TreeSet底層是採用TreeMap存儲的。TreeMap採用紅黑樹的排序二叉樹來保存Map中的每一個Entry(樹節點)。

?

List的三個實現:ArrayList,Vector和LinkedList。

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

Deque是雙端隊列。是隊列但同一時候擁有棧的功能。底層都是數組實現。

Vector差點兒被ArrayList取代了,它唯一的優點是線程安全。

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

?

ArrayList 和LinkedList

ArrayList底層是基于數組實現的。所以ArrayList創建的時候有個初始的capacity,提供了構造方法,編程者能夠在創建ArrayList時指定初始的capacity。假設沒有顯式提供capacity,那么程序默認設置為10.LinkedList是雙向列表存儲結構,不僅實現List接口,還實現Deque雙端隊列接口。

版權聲明:本文博客原創文章,博客,未經同意,不得轉載。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。