1. 程式人生 > >list集合與queue集合

list集合與queue集合

一、List集合

1、特點

元素是有序、可重複的,因為該集合體繫有索引

List體系下ListIterator介面在Iterator介面基礎上增加了如下方法:

boolean hasPrevious():是否還有上一個元素

Object previous():返回該迭代器上一個元素 void add(Object o):在指定位置插入一個元素

2、實現類

   ArrayList和Vector作為List類的兩個典型實現,完全支援之前介紹的List介面的全部功能。ArrayList和Vector類都是基於陣列實現的List類,所以ArrayList和Vector類封裝了一個動態的、允許再分配的Object[]陣列,陣列長度預設為10。ArrayList或Vector物件使用initalCapacity引數來設定該陣列的長度,當向ArrayList或Vector中新增元素超過了該陣列的長度時,它們的initalCapacity會自動增加。ArrayList是執行緒不安全的,Vector是執行緒安全的。同時Vector有一個子類Stack,模擬“棧”資料結構。

二、Queue集合

1、PriorityQueue:是一個最小堆,可以在構造時傳入一個Comparator物件實現最大堆。 2、Deque介面是Queue介面的子介面,代表一個雙端佇列,而且也可以作為一個棧來使用。 3、ArrayDeque:與ArrayList相似,底層都採用一個動態的、可重新分配的Object[]陣列來儲存集合元素,當集合元素超出了該陣列的容量時,系統會在底層重新分配一個Object[]陣列來儲存集合元素。 4、LinkedList:可以作為List集合、雙端佇列、棧來使用。底層以雙向連結串列形式儲存集合元素。 線性表效能分析: LinkedList集合不僅提供list功能,還提供了雙端佇列、棧功能。所有的內部以陣列作為底層實現的集合在隨機訪問時效能都比較好;內部以連結串列作為底層實現的集合在執行插入、刪除操作時有較好的效能。