首頁 Java Java入門 ArrayList、LinkedList與Vector三者有什麼差別

ArrayList、LinkedList與Vector三者有什麼差別

Aug 06, 2020 pm 04:01 PM
arraylist linkedlist vector

ArrayList、LinkedList與Vector三者有什麼差別

1、從儲存資料結構分析

(推薦教學:java入門教學

ArrayList:陣列

Vector:陣列LinkedList:雙向鍊錶

陣列:可以根據下標快速找到,所以大部分情況下,查詢快。 ArrayList、LinkedList與Vector三者有什麼差別

但是如果要進行增刪操作的時候,會需要移動修改元素後面的所有元素,所以增刪的開銷比較大,數組的對增刪操作的執行效率低。而採用陣列作為資料儲存結構的ArrayList、Vector也存在這些特性,查詢速度快(可依下標直接取,比迭代查找更快),增刪慢。

鍊錶:增加和刪除元素方便,增加或刪除一個元素,只需處理結點間的引用即可。就像人手牽手連成一排,要增加或刪除某個人只要附近的兩個人換一個人牽手,對已經牽好手的人沒影響。無論在哪裡換人耗費的資源和時間都是一樣的。

但是查詢不方便,需要一個個對比,無法根據下標直接找到。而採用鍊錶結構儲存的LinkedList也有這些特性,增刪方便,查詢慢(指的是隨機查詢,不是順序查詢)。

2、從繼承上分析

它們都實作了List接口,也就是說都實作了get(int location )、remove(int location)等「根據索引值來取得、刪除節點的函數」。

(影片教學推薦:

java影片教學

陣列結構根據下標取值很容易,LinkedList雙向清單的實作也比較簡單,透過計數索引值實現,從鍊錶長度的1/2開始查找,下標大了就從錶頭開始找,小了就從錶尾開始找。

3、從並發安全性分析

Vector:線程安全性

###ArrayList:非線程安全性######LinkedList:非線程安全性#########4、資料成長分析#########Vector:缺省的情況下,成長為原始陣列長度的一倍。說到預設,說明他其實是可以自主設定初始化大小的。 ######ArrayList:自動增長原數組的50%。 ###

以上是ArrayList、LinkedList與Vector三者有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Apr 27, 2023 pm 03:40 PM

一、Iterator和foreach的區別多態差異(foreach底層就是Iterator)Iterator是一個介面類型,他不關心集合或數組的類型;for和foreach都需要先知道集合的類型,甚至是集合內元素的類型; 1.為啥說foreach底層就是Iterator寫的程式碼:反編譯程式碼:二、foreach與iterator時remove的差別先來看阿里java開發手冊但1的時候不會報錯,2的時候就會報錯(java. util.ConcurrentModificationException)首

如何在Java中檢查ArrayList是否包含某個元素? 如何在Java中檢查ArrayList是否包含某個元素? Sep 03, 2023 pm 04:09 PM

您可以利用List介面的contains()方法來檢查清單中是否存在物件。 contains()方法booleancontains(Objecto)如果此清單包含指定的元素,則傳回true。更正式地說,如果且僅當此列表包含至少一個元素e,使得(o==null?e==null:o.equals(e)),則傳回true。參數c-要測試其在此列表中是否存在的元素。傳回值如果此清單包含指定的元素,則傳回true。拋出ClassCastException-如果指定元素的類型與此清單不相容(可選)。 NullP

使用java的ArrayList.remove()函數移除ArrayList中的元素 使用java的ArrayList.remove()函數移除ArrayList中的元素 Jul 24, 2023 pm 01:21 PM

使用java的ArrayList.remove()函數移除ArrayList中的元素在Java中,ArrayList是一種常用的集合類,用於儲存和操作一組元素。 ArrayList類別提供了許多方法來增刪改查集合中的元素。其中一個使用頻率較高的方法是remove(),它可以移除ArrayList中的元素。 ArrayList的remove()方法有兩種重載形式,一

使用LinkedList類別的removeLast()方法刪除鍊錶中的最後一個元素 使用LinkedList類別的removeLast()方法刪除鍊錶中的最後一個元素 Jul 24, 2023 pm 05:13 PM

使用LinkedList類別的removeLast()方法刪除鍊錶中的最後一個元素LinkedList是Java集合框架中常見的一種資料結構,它以雙向鍊錶的形式儲存元素。透過LinkedList類別提供的方法,我們可以方便地對鍊錶進行操作,例如新增、刪除和修改元素。在某些場景下,我們可能需要刪除鍊錶中的最後一個元素。 LinkedList類別提供了removeLas

Java中ArrayList初始化容量大小為10的原因是什麼 Java中ArrayList初始化容量大小為10的原因是什麼 May 10, 2023 pm 02:19 PM

為什麼HashMap的初始化容量為16?在聊ArrayList的初始化容量時,要先來回顧HashMap的初始化容量。這裡以Java8源碼為例,HashMap中的相關因素有兩個:初始化容量及裝載因子:/***Thedefaultinitialcapacity-MUSTbeapoweroftwo.*/staticfinalintDEFAULT_INITIAL_CAPACITY=1>1);if(newCapacity-minCapacity0)newCapacityhuge

Java使用ArrayList類別的contains()函數來判斷元素是否存在 Java使用ArrayList類別的contains()函數來判斷元素是否存在 Jul 24, 2023 pm 07:33 PM

Java使用ArrayList類別的contains()函數來判斷元素是否存在在Java程式設計中,ArrayList是一個非常常用的資料結構。它提供了一種靈活的方法來儲存和操作一組資料。除了簡單的新增、刪除和存取元素之外,ArrayList還提供了一些有用的方法,例如contains()函數,用於判斷元素是否存在於ArrayList中。 contains()函數是A

使用java的ArrayList.clear()函數清空ArrayList中的元素 使用java的ArrayList.clear()函數清空ArrayList中的元素 Jul 24, 2023 pm 02:04 PM

使用Java的ArrayList.clear()函數清空ArrayList中的元素在Java程式設計中,ArrayList是一種非常常用的資料結構,它可以動態地儲存和存取元素。然而,在某些情況下,我們可能需要清空ArrayList中的所有元素,以便重新使用或釋放記憶體。這時,就可以使用ArrayList的clear()函數來實作。 ArrayList.clear()

Java程式為LinkedList新增元素 Java程式為LinkedList新增元素 Aug 26, 2023 pm 10:21 PM

LinkedList是JavaCollectionFramework的通用類別,它實作了List、Deque和Queue三個介面。它提供了LinkedList資料結構的功能,LinkedList是一種線性資料結構,其中每個元素相互連結。我們可以對LinkedList執行多種操作,包括新增、刪除和遍歷元素。要將元素加入LinkedList集合中,我們可以使用各種內建方法,例如add()、addFirst()和addLast()。我們將探索如何使用這些方法將元素新增至LinkedList。在Java

See all articles