真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ArrayList與Vector的異同點(diǎn)有哪些

本篇內(nèi)容介紹了“ArrayList與Vector的異同點(diǎn)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、鐘祥網(wǎng)站維護(hù)、網(wǎng)站推廣。

ArrayList VS Vector

相同點(diǎn):
	1>都是基于Object數(shù)組實(shí)現(xiàn)的。
	2>都允許添加null元素。
	
不同點(diǎn):
	1>ArrayList不是線程安全的,Vector是線程安全的(方法是Synchronized的)。
	2>ArrayList擴(kuò)容后容量變?yōu)橹暗?.5倍,Vector擴(kuò)容后容量是之前的2倍,故ArrayList更省空間。

	容量:
		ArrayList	初始容量:0		擴(kuò)容:第一次(調(diào)用add方法時(shí))擴(kuò)展為10,之后每次擴(kuò)展為之前的1.5倍。
			說(shuō)明:
				1>雖然ArrayList類(lèi)的初始容量默認(rèn)為10(private static final int DEFAULT_CAPACITY = 10;)
				2>但實(shí)際上在new ArrayList()后,ArrayList的elementData(transient Object[] elementData;)的length為0
				3>在第一次調(diào)用add方法時(shí),elementData的length才擴(kuò)展到10
				4>若之后還需要擴(kuò)展容量時(shí),容量每次擴(kuò)展為之前的1.5倍
			
			代碼:
				1>無(wú)參構(gòu)造方法:    		this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; // private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
				2>擴(kuò)容1.5倍:				newCapacity = oldCapacity + (oldCapacity >> 1);
				3>擴(kuò)容時(shí)對(duì)數(shù)組進(jìn)行復(fù)制:	elementData = Arrays.copyOf(elementData, newCapacity);
		
		Vector		初始容量:10	擴(kuò)容:每次擴(kuò)展為之前的2倍。
			代碼:
				1>無(wú)參構(gòu)造方法:    		this(10);
				2>擴(kuò)容2倍:					int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity); // capacityIncrement默認(rèn)為0 
				3>擴(kuò)容時(shí)對(duì)數(shù)組進(jìn)行復(fù)制:	elementData = Arrays.copyOf(elementData, newCapacity);

ArrayList VS LinkedList

相同點(diǎn):
	1>都允許添加null元素。
	
不同點(diǎn):
	1>對(duì)于隨機(jī)訪問(wèn)get和set,ArrayList比LinkedList快。
	2>對(duì)于插入和刪除操作,LinkedList比較快。

相關(guān)集合:

1)Collections.synchronizedList(List list)
	舉例:
		List syncArraylist = Collections.synchronizedList(new ArrayList());	
		List syncLinkedList = Collections.synchronizedList(new LinkedList());
	說(shuō)明:
		1>Collections.synchronizedList(List list)實(shí)際上是創(chuàng)建了一個(gè)java.util.Collections的內(nèi)部類(lèi)SynchronizedList。
		2>SynchronizedList只是在自己的方法中使用同步代碼塊將List(封裝的ArrayList、linkedList等)里相應(yīng)的方法包裹了起來(lái),故SynchronizedList的擴(kuò)容方式同它封裝的list一樣。
		3>SynchronizedList還可以指定鎖對(duì)象,如不指定,默認(rèn)為this。
	
2)CopyOnWriteArrayList:
	1>使用ReentrantLock來(lái)實(shí)現(xiàn)線程的同步。
	2>每添加一個(gè)元素,就進(jìn)行一次數(shù)組的copy,故CopyOnWriteArrayList的寫(xiě)性能非常的糟糕。
	3>多線程環(huán)境下,CopyOnWriteArrayList的讀性能比Collections.SynchronizedList的讀性能好一些(后者的get方法也被同步代碼塊包裹了,故讀性能稍差一點(diǎn))。


3)Stack繼承自Vector,新增了push、pop方法。

“ArrayList與Vector的異同點(diǎn)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


文章名稱(chēng):ArrayList與Vector的異同點(diǎn)有哪些
當(dāng)前路徑:http://weahome.cn/article/jdsodj.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部