摘要:前言原文在點這里,這也是作者的個人網站,希望多多支持,對于作者而言,集合主要分為兩個派系,一個是系列,一個是系列。的線程安全版本,內部的實現幾乎和一模一樣。也是的線程安全版本,并且使用了分段加鎖機制,所以效率上要比要好很多。
前言
原文在: 點這里,這也是作者的個人網站,希望多多支持,O(∩_∩)O~
對于作者而言,Java 集合主要分為兩個派系,一個是 Collection 系列,一個是 Map 系列。
Collection 系列如下圖所示:
那么對于他們的特點,簡單來說可以概括為:
Collection:它是一個根接口,JDK沒有它的實現類,內部僅僅做 add(),remove(),contains(),size() 等方法的聲明。
List:它繼承于 Collection,增加了可以對每個元素插入的位置進行精確的控制的方法,另外,插入的值允許為空,也允許有重復的值。
實現類 | 實現方式 | 是否同步 | 是否支持插入空值 | 元素是否支持重復 |
---|---|---|---|---|
ArrayList | 數組 | 不同步 | 支持 | 支持 |
Vector | 數組 | 同步 | 支持 | 支持 |
LinkedList | 鏈表 | 不同步 | 支持 | 支持 |
那么對于每一個類(接口)的細節,可以看:
Java 集合:Collection,List,ArrayList,Vector,LinkedList(實現方式,對比)
Map那么對于他們的特點,簡單來說可以概括為:
HashMap:最常用的 Map,非同步,不保證順序。允許有空值和空鍵。 采用鏈表法解決哈希沖突,并且在發生哈希沖突的時候,新的 Node 會加入到鏈表的最下端;在 JDK8 中哈希沖突過多的情況下鏈表會變成紅黑樹從而保證效率;
LinkedHashMap:繼承HashMap,Iterator下 能保證插入的先后順序,原理是在LinkedHashMap中加入了鏈表,并且該鏈表還是一個雙向鏈表。
TreeMap:能夠根據 key 值來有序插入 (也就是鍵值對會根據key排序好),原理使用了紅黑樹,每次插入都會對樹進行調整。
HashTable:HashMap的線程安全版本,內部的實現幾乎和 HashMap 一模一樣。但是由于其同步是使用了 synchronized,效率較低。
ConcurrentHashMap:也是HashMap的線程安全版本,并且使用了分段加鎖機制,所以效率上要比HashTable要好很多。
那么對于每一個類(接口)的細節,可以看:
Java 集合:HashMap(put方法的實現 與 哈希沖突)
Java 集合:LinkedHashMap 工作原理及實現(轉載)
Java 集合:HashSet,HashTable,以及 ConcurrentHashMap 概念
Java 集合:TreeMap 工作原理及實現(轉載)
最后作者也是一名Java新手,上述有些是基于自己的理解作出的總結,有些是轉載別人的文章,如果有什么錯誤的地方,還麻煩各位斧正,由于沒做評論的功能,所以暫時 github issue 地址:點這里
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64911.html
摘要:而在集合中,值僅僅是一個對象罷了該對象對本身而言是無用的。將這篇文章作為集合的總結篇,但覺得沒什么好寫就回答一些面試題去了,找了一會面試題又覺得不夠系統。 前言 聲明,本文用的是jdk1.8 花了一個星期,把Java容器核心的知識過了一遍,感覺集合已經無所畏懼了??!(哈哈哈....),現在來總結一下吧~~ 回顧目錄: Collection總覽 List集合就這么簡單【源碼剖析】 Ma...
摘要:可能是最流行的集合類型。它是一個范性有序的集合。一個無序并不支持重復的集合。接口繼承接口,集合中可以存放重復對象。集合類提供了,等高階函數去處理。我們聲明一個集合或者數組,可以轉換成相應類型的集合。調用轉換為可變集合。 不積跬步無以至千里,不積小流無以成江海 先看看Kotlin中for循環的遍歷 fun testList(){ var StringVal = 12_...
摘要:集合工具包是在包中,實現了數據結構數組棧鏈表隊列映射和集合。集合主要可以劃分為個部分列表集合映射工具類迭代器枚舉類和。集合的框架圖如下圖片來源集合頂層接口主要有和。和都是集合遍歷相關接口,是特有的遍歷工具接口 Java集合工具包是在java.util.*包中,實現了數據結構:數組、棧、鏈表、隊列、映射和集合。Java集合主要可以劃分為4個部分:List列表、Set集合、Map映射、工具...
閱讀 3244·2021-11-11 11:00
閱讀 2565·2019-08-29 11:23
閱讀 1441·2019-08-29 10:58
閱讀 2323·2019-08-29 10:58
閱讀 2952·2019-08-23 18:26
閱讀 2507·2019-08-23 18:18
閱讀 2038·2019-08-23 16:53
閱讀 3411·2019-08-23 13:13