ArrayList和LinkedList總結

首先ArrayList和LinkedList都是List集合下的兩個實現類,由於這兩個類都沒有synchronized這個關鍵字做修飾,所以都是非線程同步的(即線程不安全)

Arraylist
數組存儲
ArrayList的數據存儲是基於數組實現的,根據他的數組下標可以快速的查詢到需要查找的數據,但是如果要增加或者刪除一個數據的話,相比查找的效率會低一些。

初始容量和擴容機制
arraylist的初始化大小爲0,當第一次需要用到內存空間的時候,會去調用add方法,擴容10個內存空間;當10個內存空間不足以支撐目前的數據時,就再調用grow方法,擴容初始容量的1.5倍內存空間。已達到可以支持該數據數量。

LinkedList
數據存儲
LinkedList數據存儲是基於鏈表實現的,由存儲元素的節點連接而成,且每一個節點都包含一個節點值,和前驅結點的引用和後繼節點的引用,當需要進行增加或刪除一個數據的時候,只需要將兩個關聯的節點的引用進行相應的修改即可,所以linkedlist沒有初始容量,也沒有擴容機制。

實現接口
linkedlist實現了deque接口,所以可以作爲雙端隊列使用
同時實現了cloneable接口,所以可以進行相應的克隆操作
也實現了Serializabled接口,所以可以進行序列化操作

方法(棧和隊列)
linkedlist可以調用addFirst方法在前驅結點插入數據進行棧的操作(先進後出)
調用addLast方法在後繼結點插入數據進行隊列的操作(先進先出)

在這裏插入圖片描述

發佈了81 篇原創文章 · 獲贊 35 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章