陣列表(arraylist)和向量(vector)的區別

ArrayList與Vector...

陣列表(arraylist)和向量(vector)的區別

ArrayList與Vector

向量實現的陣列可以在執行時在新增或刪除某些元素時進行增長/收縮。使用整數索引訪問其元素。兩個欄位–容量和容量增量,是向量儲存管理的特徵。它實現了四個介面:*列表*隨機訪問*可克隆*可序列化介面

ArrayList和vectors一樣,也實現了四個介面。同樣,和向量一樣,它的大小在執行時也會發生變化。此外,它還有一個名為capacity的欄位,其大小與ArrayList的大小一樣大。

vectors和ArrayList都適合從任何位置檢索元素,也適合從容器類的末尾**或刪除元素。那麼兩者的區別到底在哪裡呢?以下幾點將對這一問題有所幫助:

1.同步:向量同步,ArrayList不同步。如果從ArrayList中新增或刪除元素,則稱為結構修改。當多個執行緒同時訪問一個ArrayList和一個修改列表的程式碼塊時,就需要從外部同步列表。簡而言之,向量內容是執行緒安全的,而ArrayList不是。如果要求沒有提到執行緒安全的集合,那麼應該選擇ArrayList,因為同步會影響效能。非同步陣列列表速度很快。

2.資料增長:ArrayList和vector元素都儲存為陣列,但vector的預設大小為10,ArrayList沒有預設大小。當向ArrayList或vector新增元素時,兩個類都有可能耗盡空間。在這種情況下,預設情況下,向量的大小是它的兩倍,而ArrayList的大小增加了50%。對於ArrayList無法使用的向量,可以設定增量值。

3.遍歷元素:ArrayList在這裡有一個優勢,因為您可以透過簡單地使用索引來訪問它的元素。對於向量,您需要建立一個迭代器來遍歷它的元素。

總結:

1.如果容器類要由單個執行緒或某個區域性變數修改,則應使用ArrayList。2.當容器類由多個執行緒訪問時,然後使用向量,否則您將不得不進行手動同步。3.我們可以用向量指定增量大小,但不能用ArrayList指定增量大小。4.向量是同步的,而ArrayList不是。5.向量可以將大小增加一倍;ArrayList可以增加50%。

  • 發表於 2021-06-23 18:41
  • 閱讀 ( 53 )
  • 分類:科技

你可能感興趣的文章

插入(insertion)和替換向量(replacement vectors)的區別

...便於新的外源DNA**。 目錄 1. 概述和主要區別 2. 什麼是**向量 3. 什麼是替換向量 4. **向量和替換向量的相似性 5. 並排比較-**向量與替換向量的表格形式 6. 摘要 什麼是**向量(an insertion vector)? 首先,**載體是lambda克隆載體的最簡...

  • 發佈於 2020-10-18 16:52
  • 閲讀 ( 43 )

列表(list)和設定(set)的區別

...元素2,那麼元素1將位於元素2之前。 圖01:列表和設定 ArrayList,LinkedList,Vector是一些實現List的類。在ArrayList中,訪問元素的速度很快,但**和刪除速度較低。ArrayList不是執行緒安全的。從多個執行緒訪問同一個ArrayList可能不會...

  • 發佈於 2020-10-19 09:09
  • 閲讀 ( 50 )

陣列表(arraylist)和雙鏈表(linkedlist)的區別

關鍵區別–arraylist與linkedlist 集合對於儲存資料很有用。在普通陣列中,陣列大小是固定的。有時需要建立可以根據需要增長的陣列。Java等程式語言有集合。它是一個包含一組類和介面的框架。它充當一組元素的容器。集合...

  • 發佈於 2020-10-19 11:43
  • 閲讀 ( 46 )

佛米特(fomite)和向量(vector)的區別

...生物。 目錄 1. 概述和主要區別 2. 什麼是Fomite 3. 什麼是向量 4. Fomite與Vector的相似性 5. 並列比較-表格形式的Fomite與Vector 6. 摘要 什麼是小雞(a fomite)? Fomite是一種無生命的物體,能夠將傳染源從一個人傳染給另一個人。這些寄生...

  • 發佈於 2020-10-19 15:54
  • 閲讀 ( 47 )

通用(generic)和c中的非泛型集合#(non-generic collection in c#)的區別

...是c中的泛型集合#(generic collection in c#)? 非通用集合(如ArrayList、Queue、Stack等)可以儲存不同資料型別的元素。在獲取專案時,程式設計師應該鍵入將它們轉換為正確的資料型別。否則,它可能會導致執行時異常。通用集合類可...

  • 發佈於 2020-10-24 01:08
  • 閲讀 ( 53 )

克隆載體(cloning vector)和表示式向量(expression vector)的區別

...錄 1. 概述和主要區別 2. 什麼是克隆載體 3. 什麼是表示式向量 4. 載體的克隆與表達 5. 並排比較-以表格形式克隆載體與表達載體 6. 摘要 什麼是克隆載體(a cloning vector)? 克隆載體是可以用來**外源DNA分子的一部分DNA,並且能夠**...

  • 發佈於 2020-10-27 20:28
  • 閲讀 ( 74 )

質粒(plasmid)和向量(vector)的區別

....coli)。 目錄 1. 概述和主要區別 2. 什麼是質粒 3. 什麼是向量 4. 質粒與載體的相似性 5. 並列比較-質粒與載體的表格形式 6. 摘要 什麼是質粒(a pla**id)? 質粒是細菌的一種小的環狀DNA元素。它是一種染色體外DNA分子。此外,這個...

  • 發佈於 2020-10-26 14:59
  • 閲讀 ( 50 )

載體(carrier)和向量(vector)的區別

載體(carrier)和向量(vector)的區別 疾病是由病原微生物和感染性微粒引起的。疾病透過媒介和攜帶者傳播。攜帶者是指有疾病但沒有症狀的個體;它能夠將疾病傳染給新的個體。傳病媒介是一種能夠將疾病從受感染的個體傳染...

  • 發佈於 2020-10-26 20:34
  • 閲讀 ( 45 )

雅克(yac)和bac向量(bac vectors)的區別

雅克(yac)和bac向量(bac vectors)的區別 載體用於分子克隆。載體可以被定義為一種DNA分子,它作為一種載體將外來的遺傳物質帶入另一個細胞。含有外源DNA的載體稱為重組DNA,它應具有在宿主體內複製和表達的能力。酵母人工染...

  • 發佈於 2020-11-02 23:34
  • 閲讀 ( 46 )

8款酷炫的智慧手機控制玩具,你暗暗渴望!

JavaArrayList是一個通用的可調整大小的陣列。它提供了其他語言中陣列通常需要的大部分功能。這些操作包括:使用索引訪問元素、新增、刪除和更新元素、動態重新調整大小、對元素進行迭代等。這些操作中的大多數都經過了...

  • 發佈於 2021-03-13 20:41
  • 閲讀 ( 50 )
vyjj71621
vyjj71621

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦