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集合特點是...