主要內容爲:
- java集合框架總體預覽
- 相互依賴關係
java集合框架(Collections Framework)核心接口
- Collection
允許操作一組對象,位於集合結構層次的頂部
- Deque
擴展Queue以處理隊列兩端
- List
擴展Collection,隊裏對象列表
- NavigableSet
擴展SortedSet基於最近匹配原則檢索元素
- Queue
擴展Collection,處理鐵樹類型列表,此類只能從列表頂部刪除元素
- Set
擴展Collection,集合元素必須唯一
- SortedSet
擴展Set以處理已排序的集合
除這些基礎接口外,還有Comparaor,RandomAccess,Iterator和ListIterator等,從jdk8開始還有Spliterator接口,下面介紹各個接口
Collection
這是所有集合的最基礎接口,所有集合都必須基於它.代碼片段如下:
public interface Collection<E> extends Iterable<E>
集成了Iterable
接口,so,所有的集合類,就可以都用Foreach了,這個接口中,定義了所有集合類的核心協議(方法),方法很多,註釋很全,不一一列舉,注意這是一個泛型
接口
List
繼承了Collection,List可以重複,並可以通過index
來獲取指定位置的元素,同樣的,它也是泛型
接口
public interface List<E> extends Collection<E>
在Collection的基礎上,List添加了一些自己的方法,比如add(int,E),get(int index),replaceAll(UnaryOperator operator)等等,有意思的是UnaryOperator是java8的一個函數式接口,有興趣可以研究一下
Set
同樣繼承Collection,但是Set不搞特殊化,沒有定義其他方法,全部取自Collection接口中方法.
public interface Set<E> extends Collection<E>
Set集合中,不可以有重複值,add(E obj)方法中,如果obj已經存在於集合中,返回false,
Queue
聲明瞭隊列的行爲,隊列一般是先進先出
的列表
public interface Set<E> extends Collection<E>
他自定義了一些方法:
/**
*返回隊列中的頭部元素
*@throws NoSuchElementException 如果隊列is empty
*/
E element();
/**
*添加元素到隊列
*/
boolean offer(E e);
/**
*返回隊列的頭部元素,如果隊列is empty,返回null
*/
E peek();
/**
*返回隊列的頭部元素,如果隊列is empty,返回null,並移除此元素
*/
E poll();
/**
*移除隊列的頭部元素,並返回頭部元素,如果隊列is empty,返回null
@throws NoSuchElementException 如果隊列is empty
*/
E remove();
主要介紹這幾個個接口,其他不常用接口先不說明,可以參考API文檔jdk官方文檔,另外,Map作爲單獨的一脈,思路較上面說的思路要清晰不少,不詳細說明,後面會詳解一些map等其他集合的具體一些實現類.