成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 集合總結(jié)(Collection系列與Map系列)

zhou_you / 1822人閱讀

摘要:前言原文在點這里,這也是作者的個人網(wǎng)站,希望多多支持,對于作者而言,集合主要分為兩個派系,一個是系列,一個是系列。的線程安全版本,內(nèi)部的實現(xiàn)幾乎和一模一樣。也是的線程安全版本,并且使用了分段加鎖機制,所以效率上要比要好很多。

前言

原文在: 點這里,這也是作者的個人網(wǎng)站,希望多多支持,O(∩_∩)O~

對于作者而言,Java 集合主要分為兩個派系,一個是 Collection 系列,一個是 Map 系列。

Collection 系列

如下圖所示:

那么對于他們的特點,簡單來說可以概括為:

Collection:它是一個根接口,JDK沒有它的實現(xiàn)類,內(nèi)部僅僅做 add(),remove(),contains(),size() 等方法的聲明。

List:它繼承于 Collection,增加了可以對每個元素插入的位置進行精確的控制的方法,另外,插入的值允許為空,也允許有重復(fù)的值。

實現(xiàn)類 實現(xiàn)方式 是否同步 是否支持插入空值 元素是否支持重復(fù)
ArrayList 數(shù)組 不同步 支持 支持
Vector 數(shù)組 同步 支持 支持
LinkedList 鏈表 不同步 支持 支持

那么對于每一個類(接口)的細節(jié),可以看:

Java 集合:Collection,List,ArrayList,Vector,LinkedList(實現(xiàn)方式,對比)

Map

那么對于他們的特點,簡單來說可以概括為:

HashMap:最常用的 Map,非同步,不保證順序。允許有空值和空鍵。 采用鏈表法解決哈希沖突,并且在發(fā)生哈希沖突的時候,新的 Node 會加入到鏈表的最下端;在 JDK8 中哈希沖突過多的情況下鏈表會變成紅黑樹從而保證效率;

LinkedHashMap:繼承HashMap,Iterator下 能保證插入的先后順序,原理是在LinkedHashMap中加入了鏈表,并且該鏈表還是一個雙向鏈表。

TreeMap:能夠根據(jù) key 值來有序插入 (也就是鍵值對會根據(jù)key排序好),原理使用了紅黑樹,每次插入都會對樹進行調(diào)整。

HashTable:HashMap的線程安全版本,內(nèi)部的實現(xiàn)幾乎和 HashMap 一模一樣。但是由于其同步是使用了 synchronized,效率較低。

ConcurrentHashMap:也是HashMap的線程安全版本,并且使用了分段加鎖機制,所以效率上要比HashTable要好很多。

那么對于每一個類(接口)的細節(jié),可以看:

Java 集合:HashMap(put方法的實現(xiàn) 與 哈希沖突)

Java 集合:LinkedHashMap 工作原理及實現(xiàn)(轉(zhuǎn)載)

Java 集合:HashSet,HashTable,以及 ConcurrentHashMap 概念

Java 集合:TreeMap 工作原理及實現(xiàn)(轉(zhuǎn)載)

最后

作者也是一名Java新手,上述有些是基于自己的理解作出的總結(jié),有些是轉(zhuǎn)載別人的文章,如果有什么錯誤的地方,還麻煩各位斧正,由于沒做評論的功能,所以暫時 github issue 地址:點這里

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64911.html

相關(guān)文章

  • java源碼

    摘要:集合源碼解析回歸基礎(chǔ),集合源碼解析系列,持續(xù)更新和源碼分析與是兩個常用的操作字符串的類。這里我們從源碼看下不同狀態(tài)都是怎么處理的。 Java 集合深入理解:ArrayList 回歸基礎(chǔ),Java 集合深入理解系列,持續(xù)更新~ JVM 源碼分析之 System.currentTimeMillis 及 nanoTime 原理詳解 JVM 源碼分析之 System.currentTimeMi...

    Freeman 評論0 收藏0
  • Java集合總結(jié)【面試題+腦圖】,將知識點一網(wǎng)打盡!

    摘要:而在集合中,值僅僅是一個對象罷了該對象對本身而言是無用的。將這篇文章作為集合的總結(jié)篇,但覺得沒什么好寫就回答一些面試題去了,找了一會面試題又覺得不夠系統(tǒng)。 前言 聲明,本文用的是jdk1.8 花了一個星期,把Java容器核心的知識過了一遍,感覺集合已經(jīng)無所畏懼了!!(哈哈哈....),現(xiàn)在來總結(jié)一下吧~~ 回顧目錄: Collection總覽 List集合就這么簡單【源碼剖析】 Ma...

    yearsj 評論0 收藏0
  • kotlin學習筆記-異常好玩的list集合總結(jié)

    摘要:可能是最流行的集合類型。它是一個范性有序的集合。一個無序并不支持重復(fù)的集合。接口繼承接口,集合中可以存放重復(fù)對象。集合類提供了,等高階函數(shù)去處理。我們聲明一個集合或者數(shù)組,可以轉(zhuǎn)換成相應(yīng)類型的集合。調(diào)用轉(zhuǎn)換為可變集合。 不積跬步無以至千里,不積小流無以成江海 先看看Kotlin中for循環(huán)的遍歷 fun testList(){ var StringVal = 12_...

    RebeccaZhong 評論0 收藏0
  • 集合框架知識系列01 總體框架

    摘要:集合工具包是在包中,實現(xiàn)了數(shù)據(jù)結(jié)構(gòu)數(shù)組棧鏈表隊列映射和集合。集合主要可以劃分為個部分列表集合映射工具類迭代器枚舉類和。集合的框架圖如下圖片來源集合頂層接口主要有和。和都是集合遍歷相關(guān)接口,是特有的遍歷工具接口 Java集合工具包是在java.util.*包中,實現(xiàn)了數(shù)據(jù)結(jié)構(gòu):數(shù)組、棧、鏈表、隊列、映射和集合。Java集合主要可以劃分為4個部分:List列表、Set集合、Map映射、工具...

    honhon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<