Collection框架
集合框架(Collection Framework)泛指java.util包的若干個類和接口.如Collection,List,ArrayList,LinkedList,Vector(自動增長數組),HashSet,HashMap等. 集合框架中的類主要封裝的是典型的數據結構,如動態數組,鏈表,堆棧,集合,哈希表等.
集合框架類似編程中經常用到的工具類,使得編碼這專注于業務層的實現,不需要從底層實現相關細節—“數據結構的封裝”和”典型算法的實現”.
http://weipeng2k.iteye.com/blog/286620
集合框架的最根基的接口Collection,看一下它的聲明public interface Collection<E> extends Iterable<E>,可以看出它繼承了Iterable(可迭代的)接口,就相當于說Collection的具體實現類均可以利用Iterator了,這也是集合均支持增強型For循環的原因。
http://developer.51cto.com/art/200909/149543.htm
Collection框架中實現比較要實現什么接口
http://www.aygfsteel.com/fastunit/archive/2008/04/08/191533.html
一個類實現了Camparable接口則表明這個類的對象之間是可以相互比較的,這個類對象組成的集合就可以直接使用sort方法排序。
Comparator可以看成一種算法的實現,將算法和數據分離,Comparator也可以在下面兩種環境下使用:
1、類的設計師沒有考慮到比較問題而沒有實現Comparable,可以通過Comparator來實現排序而不必改變對象本身
2、可以使用多種排序標準,比如升序、降序等
ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。
LinkedList也是線程不安全的,LinkedList提供了一些方法,使得LinkedList可以被當作堆棧和隊列來使用。