溫馨提示×

溫馨提示×

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

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

Vector,ArrayList,LinkedList分別是什么

發(fā)布時間:2021-06-24 11:19:14 來源:億速云 閱讀:140 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“Vector,ArrayList,LinkedList分別是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Vector,ArrayList,LinkedList分別是什么”吧!

    說起Vector,ArrayList,LinkedList  想必Java開發(fā)者都已經(jīng)非常熟悉,這三個類基本上每月甚至每周都有人發(fā)出一遍來,故此網(wǎng)友將此類博客或回帖稱之為挖墳。

    孔老夫子說得好啊,“溫故而知新,可以為師矣”(我確定不是魯迅說的)。

    即便是咱們記得滾瓜爛熟的類啊函數(shù)啊,有時候還是有必要拉出來回顧一下。

    我先不說這三個類有什么定義上的區(qū)別。咱們先從性能指數(shù)來看看,同樣的添加和刪除10w和整數(shù),在添加和刪除的耗時情況。

    Vector,ArrayList,LinkedList分別是什么

    插入速度:不太明顯的是,在插入方面LinkedList要快Verctor和ArrayList大概不到2倍。當(dāng)然了,在少量的數(shù)據(jù)上,效果差異并沒有太大區(qū)別。所有離開場景的比對都是耍流氓,要說明的是Vector在插入元素時在方法上加了鎖,各位同學(xué)想必都知道鎖是一種安全但CPU開銷很大的東西。所以一般來說不管是自己實現(xiàn)的方法還是原生的,要慎重判斷是否需要使用鎖。

public synchronized boolean add(E e) {
    modCount++;
    ensureCapacityHelper(elementCount + 1);
    elementData[elementCount++] = e;
    return true;
}

    刪除速度:這個差距就非常明顯了,LinkedList怎么這么優(yōu)秀?那還用什么ArrayList?嘿嘿,別著急啊,看看訪問速度先。

    Vector,ArrayList,LinkedList分別是什么

    訪問速度:哇去,竟然差這么多?剛剛還夸你優(yōu)秀,我用你個鬼,你個糟老集合壞得很。這其實是因為它的實現(xiàn)是雙向鏈表的原因,訪問某個元素是只能是一直尋找next,找到了才返回,不能通過下標(biāo)找到。

public boolean remove(Object o) {
    if (o == null) {
        for (Node<E> x = first; x != null; x = x.next) {
            if (x.item == null) {
                unlink(x);
                return true;
            }
        }
    } else {
        for (Node<E> x = first; x != null; x = x.next) {
            if (o.equals(x.item)) {
                unlink(x);
                return true;
            }
        }
    }
    return false;
}

所以到這里大家知道怎么選擇使用自己需要的集合了吧?

感謝各位的閱讀,以上就是“Vector,ArrayList,LinkedList分別是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Vector,ArrayList,LinkedList分別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI