java中List的三個實現類

2021-06-29 12:42:25 字數 794 閱讀 4943

list用於存放多個元素,可以維護元素次序,且允許重複。它一共有三個實現類:arraylist、vector、linkedlist。它們的區別如下:

1、arraylist

內部通過陣列實現,允許快速隨機訪問元素,如查詢和遍歷,但不適合插入和刪除,因為需要進行複製、移動,代價比較高;

元素之間不能有間隔,如果空間不夠,需要增加儲存能力,進行陣列複製,預設擴充套件50%+1。

2、vector

通過陣列實現,支援執行緒同步,避免了同時寫引起的不一致,但是同步代價高,訪問會變慢,屬於執行緒安全級別的,但是一般不用;

記憶體不夠時進行擴充套件,預設擴充套件1倍;

提供indexof(obj,start)介面,arraylist沒有。

3、linkedlist

鍊錶結構儲存資料,適合資料的插入、刪除,但是隨機訪問和遍歷會較慢;

提供了用於操作表頭、表尾元素的專門方法(list介面中沒有定義);

可以當做堆疊、佇列、雙向佇列使用。

arraylist

public boolean add(e e) 

public void ensurecapacity(int mincapacity)

}

vector

private void ensurecapacityhelper(int mincapacity) 

elementdata = arrays.copyof(elementdata, newcapacity);

}}

Java集合之List集合的三個子實現類

一.list集合的子實現類特點 list集合有三個子實現類 arraylist 底層資料結構式陣列結構,查詢塊,增刪慢 從記憶體角度考慮 執行緒不安全的,不同步的,執行效率高 多執行緒 synchronized 同步的意思 解決執行緒安全問題 sychronized 鎖物件 解決執行緒安全問題,通過...

學習日記(一)List的三個實現類

set和list的區別 list特點 元素有放入順序,元素可重複 set特點 元素無放入順序,元素不可重 注意 元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的 list有三個實現類 arraylist linkedlist vector 2.1 a...

List集合介面下的三個實現類

底層採用陣列儲存元素,具有高效的查詢效率,但是增刪效率低。一般我們採用多型的方式建立集合,但是arraylist因為是實現類所以也可以建立。arraylist集合中的方法與其父介面list差不多相同。下面是使用arraylist集合的案例 去除arraylist集合中重複元素。因為list集合特點是...