java集合框架總體梳理

主要內容爲:

  • 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等其他集合的具體一些實現類.

發佈了25 篇原創文章 · 獲贊 19 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章