集合的由來:
? ? 首先,數(shù)組的長度是固定的,如果要改變數(shù)組的長度需要創(chuàng)建新的數(shù)組將舊數(shù)組里的元素拷貝到新的數(shù)組里,這樣使用起來很不方便。
? ?故, java給開發(fā)者提供了一些集合類,這些集合能夠存儲任意長度的對象,長度可以隨著元素的增加而增加,隨著元素的減少而減少,使用起來就很方便了。
在java.util包中常用的集合類有List、Set、Map。其中List和Set實現(xiàn)了Collection接口。這些集合又稱為容器。
集合繼承關系圖:

集合類的一些特點:
1,Collection接口是List接口和Set接口的父接口,通常情況下不能直接被使用。
2,List接口實現(xiàn)了Collection接口,List接口允許存在重復的對象,按照對象的插入順序排列。顧名思義:里面存? ?放的數(shù)據(jù)是有順序的,可以存放重復的數(shù)據(jù)。
3,Set接口實現(xiàn)了Collection接口,Set接口不允許存在重復的對象,按照自身的內部排序規(guī)則排列。顧名思義:里面存放的數(shù)據(jù)是沒有順序的,不可以存放重復的數(shù)據(jù)。
4,Map接口以鍵值對(kay---value)的形象存放對象,其中鍵(kay)對象不可以重復,值(value)對象可以重復,按照自身的內部排序規(guī)則排列。
數(shù)組和集合的區(qū)別
區(qū)別1:
數(shù)組既可以存儲基本數(shù)據(jù)類型,又可以存儲引用數(shù)據(jù)類型,基本數(shù)據(jù)類型存儲的是值,引用數(shù)據(jù)類型存儲的是地址值
集合只能存儲引用數(shù)據(jù)類型(對象),如果存儲基本數(shù)據(jù)類型時,會自動裝箱變成相應的包裝類
區(qū)別2:
數(shù)組長度是固定的,不能自動增長
集合的長度的是可變的,可以根據(jù)元素的增加而自動增長
Collection常用方法
boolean add(E e);// 將指定的對象添加到該集合中。
boolean remove(Object o);// 將指定的對象從該集合中移除,如果存在指定的對象返回true,否則返回false
void clear(); // 移除該集合中所有對象,清空該集合
boolean contains(Object o);// 用來查看該集合中是否存在指定的對象,如果存在指定的對象返回true,否則? ??????????????????????????????????????????????????????返回false
boolean isEmpty();// 用來查看該集合是否為空。
int size(); // 用來獲取該集合中存放的對象個數(shù)。