亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LinkedList和ArrayList的區別、Vector和ArrayList的區別

發布時間:2020-08-12 00:07:39 來源:ITPUB博客 閱讀:201 作者:ckxllf 欄目:編程語言

  LinkedList和ArrayList的區別

  繼承類和實現接口上來講

  他們都實現了List接口下的方法,他們都允許重復,允許null,并且有序的集合。

  LinkedList實現了Deque接口。

  底層實現上來講

  ArrayList底層用數組來實現,LinkedList底層用雙鏈表來實現。

  那么ArrayList的和LinkedList的對比就會退化為數組和鏈表的區別。

  數組隨機訪問一個元素的時間復雜度是O(1)。

  鏈表的隨機訪問一個元素的時間復雜度是O(n)。

  因為數組的訪問只需要給定下標,就可以立馬訪問,而鏈表需要遍歷,遍歷的次數即為下標值。

  ArrayList 的 get() ,set()方法相對于LinkedList效率要高,ArrayList的查詢以及獲取元素,效率更高

  數組隨機添加/刪除一個元素的時間復雜度是O(n)。

  鏈表隨機添加/刪除一個元素的時間復雜度是O(1)。

  因為數組隨機添加一個元素,指定下標的元素以及后面的所有元素,都需要向后移動,開銷很大,而鏈表只需要將指定位置下標的上一個的節點確定,改變引用即可,開銷很小。

  (tips:在指定位置添加和刪除的時候,最壞情況是O(1/2 size),因為底層調用node()方法查詢的時候,先判斷索引和 1/2 size誰打誰小,如果索引小,那么從前向后查詢,如果1/2size小,那么從后向前查詢)

  LinkedList的add(),remove()方法,相對于ArrayList效率要高很多,LinkedList的刪除和添加元素,效率更高

  使用上來講

  當我們要使用集合來存儲的時候,我們應該考慮清楚,如果我們需要不斷的向集合中添加和刪除,那么就使用LinkedList 鄭州人流手術多少錢 http://mobile.chnk120.com/

  如果更多的是不斷的獲取元素,那么就使用ArrayList。

  Vector和ArrayList的區別

  簡單介紹一下Vector集合。

  Vector 繼承 自AbstractList,實現了List、Random、Colneable、java.io.Serializable接口,用數組來實現。

  我們會發現Vector的繼承類和實現接口和ArrayList是一模一樣的。

  構造方法:

  無參構造器:Vector(){},初始化數組,默認大小為10。

  雙參: Vector(int initialCapacity, int capacityIncrement)

  這兩個參數分別是,初始化大小和,增量,也就是指定了擴容方式。

  單參: Vector(int initialCapacity)

  底層調用雙參構造器,增量默認為0。

  Vector(Collection c) ,將集合添加到Vector中。

  擴容:grow()方法,如果需要增量沒有設置,默認兩倍擴容,如果設置了增量,那么每一次擴容一個增量的大小。

  增刪改查的實現結構,與ArrayList沒有區別,但是方法都用了Synchronized 來修飾。也就是說Vector是線程安全的,當多線程訪問Vector時,不會引起各種各樣的錯誤。

  所以Vector和ArrayList的區別就是:

  Vector和ArrayList的底層實現一摸一樣,都是允許null,允許重復,有序的集合。

  Vector在構造器可以給定增量,也就是擴容的大小,如果不給定增量,那么就2倍擴容,ArrayList默認1.5倍擴容。

  Vector線程安全,ArrayList非線程安全

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南通市| 同心县| 五指山市| 开平市| 南昌县| 丽水市| 鄄城县| 绩溪县| 淮阳县| 青阳县| 杭州市| 平定县| 剑阁县| 湘潭县| 塔河县| 太湖县| 正宁县| 开远市| 宁城县| 泰宁县| 崇文区| 通渭县| 屯留县| 乌鲁木齐县| 白沙| 彭阳县| 砚山县| 阳山县| 德保县| 开平市| 琼中| 博乐市| 边坝县| 商都县| 蓝田县| 开封市| 喀喇沁旗| 陵水| 缙云县| 福海县| 东莞市|