1. 程式人生 > >java集合對比彙總

java集合對比彙總

java中的集合類結構

集合結構

List、Set和Map:

       List是有序的集合,Set是無序的集合。Map是無序的鍵值對。

HashMap詳解:

        HashMap有兩個引數影響其效能:初始容量和載入因子。預設初始容量是16,載入因子是0.75。容量是雜湊表中桶(Entry陣列)的數量,初始容量只是雜湊表在建立時的容量。載入因子是雜湊表在其容量自動增加之前可以達到多滿的一種尺度。當雜湊表中的條目數超出了載入因子與當前容量的乘積時,通過呼叫 rehash 方法將容量翻倍。

ArrayList和Vector對比:

       都是List的實現類。他們都是有序集合,即儲存在這兩個集合中的元素的位置都是有順序的,相當於一種動態的陣列,我們以後可以按位置索引號取出某個元素
       Vector是執行緒安全的,也就是說是它的方法之間是執行緒同步的,而ArrayList是執行緒序不安全的,它的方法之間是執行緒不同步的

。如果只有一個執行緒會訪問到集合,那最好是使用ArrayList,因為它不考慮執行緒安全,效率會高些;如果有多個執行緒會訪問到集合,那最好是使用Vector,因為不需要我們自己再去考慮和編寫執行緒安全的程式碼

ArrayList和LinkedList對比:

       1.ArrayList是實現了基於動態陣列的資料結構,LinkedList基於連結串列的資料結構。
       2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。
       3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料。

HashSet和TreeSet對比:

       HashSet比TreeSet的效能要好,因為TreeSet需要額外的紅黑樹演算法來維護集合的次序。所以只有當需要保持排序的Set時候,才會使用TreeSet,否則都應該使用HashSet。

HashSet和HashMap對比:

       都是採用Hash演算法來決定元素的儲存位置,並通過hash演算法來增加集合大小的。其中最大的區別就是,HashSet實現的Set介面,他不允許有重複的值。HashMap實現的是Map介面,裡面儲存的是鍵值對,map中不允許存在重複的key。

HashMap和HashTable對比:

       HashTable是一個執行緒安全的Map實現,但HashMap是執行緒不安全的實現,所以HashMap比HashTable的效能高一些;但是如果有多個執行緒訪問同一個Map物件時候,應該使用HashTable。
       HashTable不允許使用null作為key和value,如果檢視把null值放入HashTable中會引發NullPointerException異常,但是HashMap可以使用null作為key或value。null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示 HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。

各集合對比:

集合對比

小結

       參考了很多資料,整理了一下各種集合之間的對比。在使用的過程中,還需要結合自己的實際業務來進行選擇。

相關推薦

java集合對比彙總

java中的集合類結構 List、Set和Map:        List是有序的集合,Set是無序的集合。Map是無序的鍵值對。 HashMap詳解:         HashMap有

JAVA集合彙總

source: http://www.cnblogs.com/leeplogs/p/5891861.html 一、集合與陣列 陣列(可以儲存基本資料型別)是用來存現物件的一種容器,但是陣列的長度固定,不適合在物件數量未知的情況下使用。 集合(只能儲存物件,物件型別可

【重要】JAVA集合彙總

一、集合與陣列陣列(可以儲存基本資料型別)是用來存現物件的一種容器,但是陣列的長度固定,不適合在物件數量未知的情況下使用。集合(只能儲存物件,物件型別可以不一樣)的長度可變,可在多數情況下使用。二、層次關係如圖所示:圖中,實線邊框的是實現類,折線邊框的是抽象類,而點線邊框的是

Java 集合知識彙總

      Java的集合內容很豐富,可以稱為Java集合框架,所謂框架者,必然存在著層次關係,在面向物件的世界裡,層次意味著介面,抽象類及實現了介面或者繼承自抽象類的類。介面的出現很好理解,因為不同型別的集合都有一些通用的方法。一圖勝千言:Java集合的關係圖如下:   

JAVA集合知識點彙總 List集合

一、List介面 1.Collection介面是List和Set介面的父類 2.List 介面儲存一組允許重複,有序(插入順序)的物件,有下標,插入順序作為遍歷的順序 3.Set 介面儲存一組唯一,無序的物件 沒下標 插入的順序跟遍歷的順

JAVA集合類框架學習彙總

學習連結: 集合類框架教程:http://www.runoob.com/java/java-collections.html 集合類框架面試題:https://www.jianshu.com/p/8b0a09f70b9c 集合類框架的優點: 通過使用集合框架的核心類可以減少

java集合彙總

一、集合與陣列 陣列(可以儲存基本資料型別)是用來存現物件的一種容器,但是陣列的長度固定,不適合在物件數量未知的情況下使用。 集合(只能儲存物件,物件型別可以不一樣)的長度可變,可在多數情況下使用。 二、層次關係 Collection介面是集合類的根介面

集合詳解】Java集合總結(下)-常用集合對比

今天我們主要看一張圖。 圖是無意中在網上發現的,個人覺得非常好。(時間久了就忘了出處,請原創原諒~~) 我們還是從左到右分析。 ①所有的類都用到Iterator則說明所有的集合類都有遍歷集合的方法。 ②LinkedList除了繼承AbstractSe

java集合類知識彙總

一.集合與陣列陣列(可以儲存基本資料型別)是用來存現物件的一種容器,但是陣列的長度固定,不適合在物件數量未知的情況下使用。集合(只能儲存物件,物件型別可以不一樣)的長度可變,可在多數情況下使用。二.層次關係如下圖中,實線邊框是實現類,折線邊框是抽象類,點線邊框是介面Itera

Java基礎、Java集合、多執行緒、JDBC、HTTP、JSP、Servlet、Struts面試題彙總(附答案)

[Java基礎] 1.”==”和equals方法有什麼區別? 答:==是運算子,equals是方法,方法可以通過重寫改變其行為,如String的equals就是比較字串內容。 2. switch語句能否作用在byte上,能否作用在long上,能否作用在String上?

Java集合面試題彙總

> 文章收錄在 GitHub [JavaKeeper](https://github.com/Jstarfish/JavaKeeper) ,N線網際網路開發必備技能兵器譜 作為一位小菜 ”一面面試官“,面試過程中,我肯定會問 Java 集合的內容,同時作為求職者,也肯定會被問到集合,所以整理下 Jav

Java學習筆記——淺談數據結構與Java集合框架(第一篇、List)

技術分享 emp 鏈表 adc 下標 -c nod nal integer 橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。               ——蘇軾 這一塊兒學的是雲裏霧裏,咱們先從簡單的入手。逐漸的撥開迷霧見太陽。本次先做List集合的三

Java集合的理解

java集合的理解1.java集合框架到底是什麽?Java集合框架,就是對數據結構書中的常見的數據數據結構,進行封裝。2.集合框架的架構是什麽?都是通過一些接口和一些實現接口的類來構造數據結構中常見的數據結構。自然就擁有了增加,刪除,查詢,遍歷,求其長度,將其置為空的方法。Java中就是add(),remov

Java集合類 List Set Map

set map 集合 java集合類 索引 擁有 對象 ava 重復 排序 1.List(有序、可重復) (1)List裏存放的對象是有序的,而且可以重復。 (2)List關註的是索引,擁有一系列索引相關的方法。 (3)往其中插入或刪除數據時,後面的數據會移動。 2.S

jdk源碼閱讀筆記之java集合框架(四)(LinkedList)

ray private array public 源碼閱讀 jdk源碼閱讀 oid color 解釋 關於LinkedList的分析,會從且僅從其添加(add)方法入手。 因為上一篇已經分析過ArrayList,相似的地方就不再敘述,關註點在LinkedList的特點。 屬

JAVA集合類--(一閃而過)

最好 情況 logs tab 發生 映射關系 next abstract 自己的 一、集合與數組   數組(可以存儲基本數據類型)是用來存現對象的一種容器,但是數組的長度固定,不適合在對象數量未知的情況下使用。   集合(只能存儲對象,對象類型可以不一樣)的長度可變,可在多

java集合

集合 結構 關鍵字 特定 ref 向量 實現 數據結構 散列 集合類存放於java.util包中。 集合類存放的都是對象的引用,而非對象本身,出於表達上的便利,我們稱集合中的對象就是指集合中對象的引用(reference)。 集合類型主要有3種:set(集)、list(列表

Java集合基礎

廣泛 菱形 泛型方法 size 位置 添加 實現 table 無序 Java集合框架的由來 在java1.2之前,java沒有完整的集合框架。它只有一些簡單的可以擴展的容器類,比如Victor,Stack,Hashtable等 為什麽需要容器類:容器(集合類)可以存儲多個數

轉:深入Java集合學習系列:HashSet的實現原理

是否 abstract arc html 源代碼 cat param body static 0.參考文獻 深入Java集合學習系列:HashSet的實現原理 1.HashSet概述:   HashSet實現Set接口,由哈希表(實際上是一個HashMap實例)支持。它

轉:【Java集合源碼剖析】LinkedList源碼剖析

exception 循環鏈表 位置 src zab ear 方法 劃分 head 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/35787253 您好,我正在參加CSDN博文大賽,如果您喜歡我的文章,希望您