摘要:不同點(diǎn)是線程安全的,方法有關(guān)鍵字修飾。容量增長(zhǎng)策略默認(rèn)的增長(zhǎng)策略是每次在原容量的基礎(chǔ)上。的怎么做到線程安全的實(shí)現(xiàn)了自己的,為了保證并發(fā)線程安全的共享一個(gè),開發(fā)者在等方法中也加入了。與類繼承自,的實(shí)現(xiàn)不止一種方式,比如。
java.util.Vector
Vector與ArrayList的異同相同點(diǎn):隨機(jī)存取,可通過位置序號(hào)直接獲取數(shù)據(jù)。都是通過一個(gè)數(shù)組來存放元素。
不同點(diǎn):Vector是線程安全的,方法有synchronized關(guān)鍵字修飾。
Vector容量增長(zhǎng)策略Vector默認(rèn)的增長(zhǎng)策略是每次在原容量的基礎(chǔ)上x2。
Vector的ListIterator怎么做到線程安全的Vector實(shí)現(xiàn)了自己的iterator,為了保證并發(fā)線程安全的共享一個(gè)Vector,開發(fā)者在next等方法中也加入了synchronized。
public E next() { synchronized (Vector.this) { checkForComodification(); int i = cursor; if (i >= elementCount) throw new NoSuchElementException(); cursor = i + 1; return elementData(lastRet = i); } }
這里synchronized修飾的是Vector.this對(duì)象本身,而不是iterator自己,這樣多個(gè)線程使用iterator操作Vector時(shí),就可以保證線程的安全。
Vector與ArrayList實(shí)現(xiàn)的Spliterator類似唯一的區(qū)別就是在使用自己的Vector時(shí),加上了synchronized關(guān)鍵字。
Stack與VectorStack類繼承自Vector,stack的實(shí)現(xiàn)不止一種方式,比如LinkedList。java中在Vector基礎(chǔ)上實(shí)現(xiàn)了一個(gè)Stack。實(shí)現(xiàn)的想法也很簡(jiǎn)單,就是在數(shù)組的末尾push和pop。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/67830.html
摘要:容器相關(guān)的操作及其源碼分析說明本文是基于分析的。通常,我們通過迭代器來遍歷集合。是接口所特有的,在接口中,通過返回一個(gè)對(duì)象。為了偷懶啊,底層使用了迭代器。即返回的和原在元素上保持一致,但不可修改。 容器相關(guān)的操作及其源碼分析 說明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、本文會(huì)貼出大量的官方注釋文檔,強(qiáng)迫自己學(xué)英語(yǔ),篇幅...
摘要:說一說迭代器通過集合對(duì)象獲取其對(duì)應(yīng)的對(duì)象判斷是否存在下一個(gè)元素取出該元素并將迭代器對(duì)象指向下一個(gè)元素取出元素的方式迭代器。對(duì)于使用容器者而言,具體的實(shí)現(xiàn)不重要,只要通過容器獲取到該實(shí)現(xiàn)的迭代器的對(duì)象即可,也就是方法。 前言 歡迎關(guān)注微信公眾號(hào):Coder編程獲取最新原創(chuàng)技術(shù)文章和相關(guān)免費(fèi)學(xué)習(xí)資料,隨時(shí)隨地學(xué)習(xí)技術(shù)知識(shí)!** 本章主要介紹Collection集合相關(guān)知識(shí),結(jié)合面試中會(huì)提到...
摘要:底層使用的是雙向鏈表數(shù)據(jù)結(jié)構(gòu)之前為循環(huán)鏈表,取消了循環(huán)??焖匐S機(jī)訪問就是通過元素的序號(hào)快速獲取元素對(duì)象對(duì)應(yīng)于方法。而接口就是用來標(biāo)識(shí)該類支持快速隨機(jī)訪問。僅僅是起標(biāo)識(shí)作用。,中文名為雙端隊(duì)列。不同的是,是線程安全的,內(nèi)部使用了進(jìn)行同步。 前言 學(xué)習(xí)情況記錄 時(shí)間:week 2 SMART子目標(biāo) :Java 容器 記錄在學(xué)習(xí)Java容器 知識(shí)點(diǎn)中,關(guān)于List的需要重點(diǎn)記錄的知識(shí)點(diǎn)。...
摘要:集合類關(guān)系是和的父接口。相等必須是對(duì)稱的,約定只能和其它相等,亦然。和接口在中引入,這個(gè)單詞是和的合成,用來分割集合以給并行處理提供方便。這些并不立即執(zhí)行,而是等到最后一個(gè)函數(shù),統(tǒng)一執(zhí)行。 集合類關(guān)系: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ...
摘要:概述集合類主要有大分支,及。不能保證元素的排列順序,順序有可能發(fā)生變化不是同步的集合元素可以是但只能放入一個(gè)是接口的唯一實(shí)現(xiàn)類,可以確保集合元素處于排序狀態(tài)。如果這兩個(gè)的通過比較返回,新添加的將覆蓋集合中原有的,但不會(huì)覆蓋。 概述 Java集合類主要有2大分支,Collection及Map。Collection體系如下: https://upload-images.jianshu......
閱讀 2884·2023-04-25 23:08
閱讀 1696·2021-11-23 09:51
閱讀 1695·2021-10-27 14:18
閱讀 3172·2019-08-29 13:25
閱讀 2895·2019-08-29 13:14
閱讀 3035·2019-08-26 18:36
閱讀 2259·2019-08-26 12:11
閱讀 872·2019-08-26 11:29