java基本資料結構之List常用實現類總結

2021-08-01 07:32:02 字數 1064 閱讀 5598

1. 

list

list是乙個有序的集合介面。可以通過乙個位置索引進行新增、刪除、查詢元素。它允許重複的元素。

2.abstractlist

list介面的抽象實現類,它提供了

list

介面的一些基本實現。

3.arraylist

最常用的list介面實現類,底層使用可變長度的動態陣列實現。

arraylist

有乙個初始容量

(capacity = 10)

,當元素數量大於初始容量時進行擴容,新的陣列長度

= 舊陣列長度

+ 舊陣列長度

/ 2。因為每個元素都有固定的位置索引,所以根據索引查詢元素的速度非常快。如果在中間插入元素時,由於後面的元素全部要後移一位,所以效能會比較差。由於沒有做併發訪問控制,所以它是乙個非執行緒安全的集合。允許重複元素或

null

元素。4. 

linkedlist

list介面的雙向鏈結的實現類,允許

null

元素。它表現上是乙個有序的集合,但記憶體中其實是無序儲存。由於原因,所以它插入的速度會很快,但是查詢乙個元素的速度較

arraylist

速度慢很多。是乙個非執行緒安全的集合。

5.vector

vector底層使用動態陣列實現,預設初始容量為

10,可以通過構造方法指定初始容量,同時可以指定擴容時的增量。擴容規則是若指定的擴容增量則

新容量 = 舊容量

+ 擴容增量,若未指定擴容增量則 新容量

= 2 *

舊容量。它的關鍵方法都加了

synchronized

,所以是乙個執行緒安全的集合。

6.類圖

Redis基本資料結構之List

列表 list 型別是用來儲存多個有序的字串。在 redis 中,可以對列表的兩端進行插入 push 和彈出 pop 操作,還可以獲取指定範圍的元素列表 獲取指定索引下標的元素等。列表是一種比較靈活的資料結構,它可以充當棧和佇列的角色,在實際開發上有很多應用場景。如圖所示,a b c d e 五個元...

VFS之基本資料結構

檔案系統 是一種儲存和組織計算機中檔案資料的一系列抽象資料型別,它們用來實現資料的儲存 管理 檢視 等功能。在 linux 系統中,所有的裝置 程序都是以檔案的形式存在,字元裝置 塊裝置以及這些裝置的驅動均要依靠檔案系統來實現,裝置管理的基礎框架也要以來檔案系統 sysfs 所以檔案系統在linux...

redis基本資料結構之ZSet

zset資料結構類似於set結構,只是zset結構中,每個元素都會有乙個分值,然後所有元素按照分值的大小進行排列,相當於是乙個進行了排序的鍊錶。如果zset是乙個鍊錶,而且內部元素是有序的,在進行元素插入和刪除,以及查詢的時候,就必須要遍歷鍊錶才行,時間複雜度就達到了o n 這個在以單執行緒處理的r...