集合框架:由集合和對集合操做的工具類組成java
一、集合的基本認識:一個用來保存對個對象數據的容器,與數組相似,但本質不一樣。 數組
在java中咱們多用對象用於封裝特有數據,那麼對象多了也須要存儲,雖然數據能夠存儲多個對象,但數組的長度是不能變化在,咱們並不知道須要存儲的對個數,這時就須要使用集合來進行存儲數據結構
三、集合的特色:框架
1)集合其自己也是一個對象 ide
2)用於存儲對象的容器;即集合中存儲的元素是對象 工具
3)集合是不能夠存儲基本數據類型的;(集合存儲基本數據類型時會先進行自動封裝成其對應的對象後再進行存儲) code
4)集合的長度是可變的; 對象
四、集合框架體系: 集合是用於存儲對象的容器。而每種容器內部都有其獨特的數據結構,正由於不一樣的容器內部數據結構不一樣,使其各自有本身獨特的使用場景。雖然每一個 容器有其獨特的結構可是相似的容器仍是存在共性的(至少對容器內部對象的操做方法上是存在共性的),因此這些共性方法能被不斷抽取,最終造成了集合框架體系。blog
五、集合框架的頂層接口(根接口):Collection 接口
Collection的常見方法:
//Collection是一個接口,所以它不能直接實例化對象,這裏咱們經過多態的形式來建立對象,它的存儲特性由實現類來決定 Collection<String> collection = new ArrayList<>();
(1)添加
boolean add(E o);
//add方法:用於將單個參數對象保存到集合中 collection.add("李雷"); collection.add("韓梅梅");
boolean addAll(Collection<? extends E> c);
//addAll方法:用於將參數集合中的全部數據保存到當前集合中 collection.addAll(Arrays.asList("露西","莉莉"));
(2)刪除
boolean remove(Object o);
//remove方法:用於將參數對象從集合中移除 collection.remove("李雷");
boolean removeAll(Collection<? extends E> c)
//removeAll方法:用於移除當前集合中與參數集合相同的元素 collection.removeAll(Arrays.asList("露西","莉莉"));
boolean retainAll(Collection<?> c);
//removeAll方法:用於移除當前集合中與參數集合不一樣的元素 collection.retainAll(Arrays.asList("露西","莉莉"));
void clear();
//clear方法:用於移除集合中保存的全部數據 colletion.clear();
(3)判斷
boolean isEmpty();
//isEmpty方法: 用於判斷集合中是否保存了元素 collection.isEmpry();
boolean contains(Object o);
// contains方法用來判斷集合中是否保存了與參數相同的元素 collection.contains("李雷");
boolean containsAll(Collection<?> c);
//containsAll方法:用於判斷當前集合中是否包含了參數集合中的全部元素 collection.containsAll(Arrays.asList("露西","莉莉"));
4)獲取
int size();
//size方法:用於獲取集合中保存的元素對象個數 int size = collection.size();
Iterator<E> iterator();
//iterator方法:用於獲取集合中的迭代器 Iterator iterator = collection.iterator();
(5)其餘
將集合中元素轉爲數組:
Ojbect[] toArray();
//將集合轉爲數組 String[] strs = collection.toArray();
6.集合中保存了多個元素對象,咱們須要將多個對象從集合中獲取出來,就須要循環獲取集合中的每個元素,通常能夠經過循環遍歷獲取
由於Collection集合是經過多態來建立的,所以屏蔽了有序與無序的區別,從而Collection集合中是不能向數組那樣使用下標遍歷獲取,固然在Collection的實現類中,有的是有下標的
1)能夠經過加強for循環for each遍歷(不須要下標)
for(Object obj : collection){//集合中的元素都是對象 System.out.println(obj); }
2) 在每個集合中都存在迭代器,所以也能夠經過迭代器來遍歷
迭代器方法: hasNext()、next()
for(Iterator iter = collection.iterator(); iter.hasNext();) {//hasNext用來判斷是否存在下一個元素 System.out.println(iter.next());//next用於獲取迭代器對應的下一元素 }
由於Collection的一個高度抽象的集合接口,所以它裏面所提供的方法和操做方式在Collection體系中均可以使用,它的2大致系List和Set都會以不一樣的方式來實現這些方法,從而使他們的存儲特色不一樣,在後期的開發過程當中多數也是使用List和Set來實現集合。