Java集合類存放於 java.util 包中,是一個用來存放對象的容器。
集合有以下幾個特點: ①集合隻能存放對象。比如你存一個 int 型數據 1放入集合中,其實它是自動轉換成 Integer 類後存入的。 ②集合存放的是對象的引用,對象本身還是放在堆內存中。 ③集合可以存放不同類型,不限數量的數據類型。
1.數組長度需初始化時指定長度,隻能保存定長的數據;而集合可以保存數量不確定的數據。 2.數組可以存基本類型,也可以是對象; 集合裡隻能保存對象(實際上保存對象的引用變量)。
主要分為Collection接口和Map接口,Collection接口有3個主要的接口List,Set,Queue 整體框架如下:
圖源於網絡
所有的集合類都實現瞭Iterator接口,這是一個用於遍歷集合中元素的接口 所包含方法如下:
Collection接口
Collection接口是處理對象集合的根接口,其中定義瞭很多對元素進行操作的方法,框架圖中的AbstractCollection提供Collection部分實現的抽象類。 Collection接口中的所有方法
fec954724f6ce3d727d25d3b0efe8c8e
其中比較常用的方法如下
Collection的常用方法,在子接口中同樣常用,下面不再重復說明
List裡存放的對象是有序的,同時也是可以重復的,List關註的是索引,擁有一系列和索引相關的方法,查詢速度快。因為往list集合裡插入或刪除數據時,會伴隨著後面數據的移動,所有插入刪除數據速度慢。
List接口中的所有方法
其中主要比較常用的方法如下
Set裡存放的對象是無序,不能重復的,集合中的對象不按特定的方式排序,隻是簡單地把對象加入集合中。
List接口中的全部方法
f9f12c6a9dd52974cef51e269f1a0a63
Set隻繼承瞭Collection,並沒有添加自己的方法,所以常用方法與Collection一樣
隊列是“先進先出”容器。插入新元素隻能添加到隊列的尾部,獲取或刪除元素隻能是隊列頭部的元素。
Queue中的所有方法
需要註意的是,新增、檢索、刪除都分別提供瞭兩種方法,請註意一下它們的區別
Map集合中存儲的是鍵值對,提供key(鍵)到value(值)的映射,鍵不能重復,值可以重復。
Map的所有方法如下圖
af5ea9e7d42d3df33adde72514173f16
常用方法如下:
Map中還包括一個內部類Entry,該類封裝瞭一個key-value對。Map內部存儲是通過Entry進行存儲的。 Entry包含如下三個方法:
List和Set繼承Collection接口,而Map不是
① List允許有重復的元素。任何數量的重復元素都可以在不影響現有重復元素的值及其索引的情況下插入到List集合中;
② Set集合不允許元素重復。Set以及所有實現瞭Set接口的類都不允許重復值的插入,若多次插入同一個元素時,在該集合中隻顯示一個;
③ Map以鍵值對的形式對元素進行存儲。Map不允許有重復鍵,但允許有不同鍵對應的重復的值;
① List及其所有實現類保持瞭每個元素的插入順序;
② Set中的元素都是無序的;但是某些Set的實現類以某種殊形式對其中的元素進行排序,如:LinkedHashSet按照元素的插入順序進行排序;
③ Map跟Set一樣對元素進行無序存儲,但其某些實現類對元素進行瞭排序。如:TreeMap根據鍵對其中的元素進行升序排序;
① List允許任意數量的空值(Null)
② Set最多允許出現一個空值(Null)(因為Set集合不允許元素重復,實際可上重復插入空值(Null))
③ Map隻允許出現一個空鍵(Null),但允許出現任意數量的空值(Null)
List中的元素,有序、可重復、任意空值 Set中的元素,無序、不重復、隻有一個空元素 Map中的元素,無序、鍵不重,值可重、可一個空鍵,多可空值
以上是java集合框架的概括內容,通過這篇文章主要瞭解一些基本的概念以及對集合的操作方法。 後續文章將對java集合中的具體實現類進行深入瞭解。有興趣的話可以觀看後續內容,進一步瞭解java集合內容。