java較大數(shù)據(jù)量取差集如何是list.removeAll優(yōu)化性能-創(chuàng)新互聯(lián)

java 較大數(shù)據(jù)量取差集如何是list.removeAll優(yōu)化性能?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

新沂網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,新沂網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為新沂1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的新沂做網(wǎng)站的公司定做!

List.removeAll效率低原因:

List.removeAll效率低和list集合本身的特點(diǎn)有關(guān) :

List底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢

1.List.contains()效率沒有hashset高

arrayList.removeAll底層是for循化調(diào)用contains方法。arrayList雖然用get(index)方法查詢效率高,但是若用contains方法查詢對(duì)象元素,Set集合應(yīng)該比List效率要高。

因?yàn)閔ashset的contains方法其實(shí)是先調(diào)用每個(gè)元素的hashCode()方法來返回哈希碼,如果哈希碼的值相等的情況下再調(diào)用equals(obj)方法去判斷是否相等,只有在這兩個(gè)方法所返回的值都相等的情況下,才判定這個(gè)HashSet包含某個(gè)元素,而list直接調(diào)用equals(obj)方法.所以hashset效率更高。

2.arrayList.remove()效率沒有l(wèi)inkedList刪除效率高

arrayList底層采用數(shù)組每刪除一下元素?cái)?shù)據(jù)后面的元素都要往前移動(dòng)效率低消耗的資源也大,linkedList鏈表刪除元素只要改變前后節(jié)點(diǎn)的位置信息

3.采用Iterator迭代器,這種方式我們僅需要對(duì)iterator進(jìn)行循環(huán),然后對(duì)需要?jiǎng)h除的元素執(zhí)行iterator.remove(iterator.next()),而無需關(guān)注下標(biāo)的問題

改進(jìn)代碼

  LinkedList linkedList= new LinkedList(src);//大集合用linkedlist
	HashSet hashSet= new HashSet(oth);//小集合用hashset
	Iterator iter = linkedList.iterator();//采用Iterator迭代器進(jìn)行數(shù)據(jù)的操作
	while(iter.hasNext()){
		if(hashSet.contains(iter.next())){
			iter.remove();			
			}	
		}

網(wǎng)頁題目:java較大數(shù)據(jù)量取差集如何是list.removeAll優(yōu)化性能-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://muchs.cn/article24/dsecje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁設(shè)計(jì)公司微信小程序、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)