您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么理解Java中List集合性能”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
List是一個(gè)元素有序,可重復(fù)集合,集合中每個(gè)元素都有其對(duì)應(yīng)的順序索引,List集合允許使用重復(fù)元素,可以通過(guò)索引來(lái)訪問(wèn)指定位置的集合元素
var a=new ArrayList(); a.add(new String("zxc")); System.out.println(a.indexOf(new String("zxc")));
這段代碼,程序試圖返回zxc的位置,但實(shí)際上List并未包含該字符串對(duì)象,因?yàn)樵贚ist集合添加時(shí),使用的是new String,但是最后程序依然返回1,這是因?yàn)椋贚ist中對(duì)比兩個(gè)程序是否相等,只通過(guò)equals
在整個(gè)List系列中,ArrayList和LinkedList又是線性表的典型實(shí)現(xiàn):基于數(shù)組的線性表和基于鏈的線性表,Queue代表了隊(duì)列,Deque代表了雙端隊(duì)列
一般來(lái)說(shuō),由于數(shù)組以一塊連續(xù)內(nèi)存保存所有數(shù)組元素,所以數(shù)組想隨機(jī)訪問(wèn)時(shí)性能最好,所有的內(nèi)部以數(shù)組作為底層實(shí)現(xiàn)的集合在隨機(jī)訪問(wèn)時(shí)性能都比較好,而內(nèi)部以鏈表作為底層實(shí)現(xiàn)的集合在執(zhí)行插入,刪除操作時(shí)有較好的性能,但總體來(lái)說(shuō),ArrayList比linkedList性能要好
在需要遍歷時(shí),對(duì)于ArrayList,Vector,應(yīng)該使用隨機(jī)訪問(wèn)方法來(lái)遍歷,對(duì)于LinkedList,則應(yīng)該使用迭代器Iterator來(lái)遍歷
如果需要經(jīng)常執(zhí)行插入,刪除,則LinkedList更好,因?yàn)锳rrayList和Vector需要經(jīng)常出現(xiàn)分配內(nèi)存空間大小
如果有多個(gè)線程同時(shí)訪問(wèn)List集合中的元素,可以考慮通過(guò)Collection將集合包裝成線程安全的集合
“怎么理解Java中List集合性能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。