java集合框架

java集合框架

首先要明確,集合表明了一組對象(和數組同樣,但數組長度不能變,而集合能)。Java中的集合框架定義了一套規範,用來表示、操做集合,使具體操做與實現細節解耦。java

設計概念

爲了保證核心接口足夠小,最頂層的接口(也就是Collection與Map接口)並不會區分該集合是否可變(mutability),是否可更改(modifiability),是否可改變大小(resizability)這些細微的差異。相反,一些操做是可選的,在實現時拋出UnsupportedOperationException便可表示集合不支持該操做。集合的實現者必須在文檔中聲明那些操做是不支持的。web

爲了保證最頂層的核心接口足夠小,它們只能包含下面狀況下的方法:數組

基本操做,像以前說的「增刪改查」
There is a compelling performance reason why an important implementation would want to override it.
此外,全部的集合類都必須能提供友好的交互操做,這包括沒有繼承Collection類的數組對象。所以,框架提供一套方法,讓集合類與數組能夠相互轉化,而且能夠把Map看做成集合。框架

兩大基類Collection與Map

在集合框架的類繼承體系中,最頂層有兩個接口:ide

Collection表示一組純數據
Map表示一組key-value對
通常繼承自Collection或Map的集合類,會提供兩個「標準」的構造函數:svg

沒有參數的構造函數,建立一個空的集合類
有一個類型與基類(Collection或Map)相同的構造函數,建立一個與給定參數具備相同元素的新集合類
由於接口中不能包含構造函數,因此上面這兩個構造函數的約定並非強制性的,可是在目前的集合框架中,全部繼承自Collection或Map的子類都遵循這一約定。
在這裏插入圖片描述函數