中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

清流县| 永胜县| 广汉市| 从江县| 乌兰县| 安仁县| 芜湖市| 塔城市| 四川省| 泰来县| 天峻县| 阜城县| 镇坪县| 北宁市| 绥宁县| 同德县| 玉山县| 泸州市| 麻栗坡县| 锡林浩特市| 尼玛县| 乌拉特中旗| 甘洛县| 桃园市| 馆陶县| 陵川县| 凌海市| 扎鲁特旗| 江山市| 莆田市| 调兵山市| 宣化县| 宜君县| 阳信县| 邹平县| 搜索| 灌阳县| 普兰店市| 大姚县| 福建省| 吴忠市|