Java集合類學習-LinkedList, ArrayList, Stack, Queue, Vector

Collection數組

List安全

  在Collection的基礎上引入了有序的概念,位置精確;容許相同元素。在列表上迭代一般優於索引遍歷。特殊的ListIterator迭代器容許元素插入、替換,雙向訪問,從列表中的制定位置開始(根據index獲取index位置的元素)。未實現get方法。數據結構

AbstractList字體

  實現了List中的一些方法,支持隨機訪問。lastIndexOf經過特殊迭代器可以制定開始位置,從後遍歷的特性來實現。直接經過指定的位置,藉助特殊迭代器找到。
spa

Vector線程

  實現可增加的數組。提供額外的方法來增長、刪除元素,比數組操做高效。在增長數組時,會增長1倍,且初始時能夠設置增加的空間大小。Vector是線程安全的,經過在方法中加入synchoronized關鍵字體現。
對象

Stackblog

  在Vextor的基礎上引入了後進先出(LIFO)的對象堆棧。 經過添加5個操做實現:push , pop , peek , empty ,在堆棧中查找項並肯定到堆棧頂距離的 search 索引

AbstractSuquentialList接口

  擴展了AbstractList, 可是最大限度地減小了實現受連續訪問數據存儲支持的此接口所需的工做。經過制定迭代器的起始位置直接找到對應元素。

LinkedList

  採用鏈表的方式實現。

ArrayList

  採用數據實現。在增長數組時,默認爲0.5倍,不是線程安全的。

Queue

  在Collection的基礎上引入了隊列的特性,先進先出。添加元素有兩個,add和offer: add在沒有可用空間時會拋出異常,offer會返回false。同poll和remove的區別。add用在鏈表中,offer用在隊列中,前者是實現了list接口的方法,後者是實現了queue接口的方法。

  Queue與List並列,不支持按索引獲取元素。

Deque

  雙端隊列在Queue的基礎上支持在兩端插入和移除元素。addLast,removeLast等對應Queue中的方法,有添加了新的方法。

 

區別區分

Vector與數組: vector實現了數組[]的動態增加。

ArrayList與Vector:(1)同步性; (2)數據增加。

ArrayList與LinkedList:(1)數據結構;(2)不一樣的優點:隨機訪問,增刪操做。

相關文章
相關標籤/搜索