国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

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

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

1、從儲存資料結(jié)構(gòu)分析

(推薦教學(xué):java入門教學(xué)

ArrayList:陣列

Vector:陣列LinkedList:雙向鍊錶

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

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

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

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

2、從繼承上分析

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

(影片教學(xué)推薦:

java影片教學(xué)

陣列結(jié)構(gòu)根據(jù)下標(biāo)取值很容易,LinkedList雙向清單的實作也比較簡單,透過計數(shù)索引值實現(xiàn),從鍊錶長度的1/2開始查找,下標(biāo)大了就從錶頭開始找,小了就從錶尾開始找。

3、從並發(fā)安全性分析

Vector:線程安全性

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

以上是ArrayList、LinkedList與Vector三者有什麼差別的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Apr 27, 2023 pm 03:40 PM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

See all articles