Java中的集合框架---Collection:
集合框架:由集合和對集合操作的工具類組成
Conllection的基本概念:
1、集合的基本認識:一個用來保存對個對象數據的容器,與數組類似,但本質不同。
在java中我們多用對象用於封裝特有數據,那麼對象多了也需要存儲,雖然數據可以存儲多個對象,但數組的長度是不能變化在,我們並不知道需要存儲的對個數,這時就需要使用集合來進行存儲
3、集合的特點:
1)集合其本身也是一個對象
2)用於存儲對象的容器;即集合中存儲的元素是對象
3)集合是不可以存儲基本數據類型的;(集合存儲基本數據類型時會先進行自動封裝成其對應的對象後再進行存儲)
4)集合的長度是可變的;
4、集合框架體系: 集合是用於存儲對象的容器。而每種容器內部都有其獨特的數據結構,正因爲不同的容器內部數據結構不同,使其各自有自己獨特的使用場景。雖然每個 容器有其獨特的結構但是類似的容器還是存在共性的(至少對容器內部對象的操作方法上是存在共性的),所以這些共性方法能被不斷抽取,最終形成了集合框架體系。
5、集合框架的頂層接口(根接口):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來實現集合。