學集合其實是因為我要研究泛型,苦于作為前提的集合還沒學懂,所以就先來搞搞它吧。
java提供了數種持有對象的方式,包括語言內置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個面試中的經典問題。
1 Collection 和 Collections的區別。
2 List, Set, Map是否繼續自Collection接口。
3 ArrayList和Vector的區別。
4 HashMap和Hashtable的區別。
篇尾有答案,我們開始正題。
集合Collection接口
--Collection 是任何對象組,元素各自獨立,通常擁有相同的套用規則。Set List由它派生。
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)
Public interface Iterator{
Public Boolean hasNext(0;
Public Object next(0;
Public void remove(0;
}
集set
--沒有重復項目的集合
有三種特定類型的集可用
HashSet-基于散列表的集,加進散列表的元素要實現hashCode()方法
LinkedHashSet-對集迭代時,按增加順序返回元素
TreeSet-基于(平衡)樹的數據結構
清單List
--位置性集合。加進清單的元素可以加在清單中特定位置或加到末尾
有兩個特定版本
ArrayList(數組表)-類似于Vector,都用于縮放數組維護集合。區別:
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
新聞熱點
疑難解答