Java-collction容器

Collection集合接口

Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。

主要方法:

boolean add(Object o)添加對象到集合
boolean remove(Object o)刪除指定的對象
int size()返回當前集合中元素的數量
boolean contains(Object o)查找集合中是否有指定的對象
boolean isEmpty()判斷集合是否爲空
Iterator iterator()返回一個迭代器
boolean containsAll(Collection c)查找集合中是否有集合c中的元素
boolean addAll(Collection c)將集合c中所有的元素添加給該集合
void clear()刪除集合中所有元素
void removeAll(Collection c)從集合中刪除c集合中也有的元素
void retainAll(Collection c)從集合中刪除集合c中不包含的元素

List接口  

List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置(按照元素插入順序存儲)。用戶能夠使用get()方法和索引來訪問List中的元素。   

LinkedList類   

LinkedList實現了Deque接口(Deque繼承了Queue接口),繼承AbstractSequentialList類,允許null元素,底層用雙向鏈表實現,在添加刪除方面比較便捷,按照添加順序存儲,沒有初始大小。LinkedList可被用作堆棧(stack),隊列(queue)或雙向隊列(deque)。注意:LinkedList是非同步方法。  

ArrayList類   

ArrayList實現List接口,繼承了AbstractList類,底層用可變大小的數組實現,允許所有元素,包括null,在隨機訪問元素方面比較便捷,按照添加元素順序存儲,初始大小爲10,每次擴容當前大小的1/2。ArrayList可用作動態數組。

注意:ArrayList也是非同步的(unsynchronized),Vector非常類似ArrayList,但是Vector是同步的,而且 初始化大小爲 10 ,擴容原來的一倍。對於需要快速插入,刪除元素,應該使用LinkedList,如果需要快速隨機訪問元素,應該使用ArrayList。

Set接口

  
Set是一種不包含重複的元素的Collection(Set最多有一個null元素),無序存儲(HashSet不按照元素插入順序存儲,LinkedHashSet按照元素插入順序存儲,TreeSet按照設定的比較順序進行排序存儲)
  

HashSet類

不允許出現重複元素,不保證集合中元素的順序,允許包含值爲null的元素,但最多只能有一個null元素,查詢速度比較快。

注意:ListHashSet可以按照存入元素順序存儲

TreeSet

不允許出現重複元素,底層用紅-黑樹結構存儲,按照存入對象的判定順序順序存儲(自定義對象要實現Comparable接口,重寫compareTo方法)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章