arraylist怎么取元素 arraylist和list的區(qū)別是什么?
arraylist和list的區(qū)別是什么?ArrayList:ArrayList是一個(gè)名稱空間系統(tǒng)集合在下一部分中,您必須在使用該類時(shí)引用它。同時(shí),它繼承了IList接口并提供數(shù)據(jù)存儲(chǔ)和檢索。Arra
arraylist和list的區(qū)別是什么?
ArrayList:ArrayList是一個(gè)名稱空間系統(tǒng)集合在下一部分中,您必須在使用該類時(shí)引用它。同時(shí),它繼承了IList接口并提供數(shù)據(jù)存儲(chǔ)和檢索。ArrayList對(duì)象的大小根據(jù)存儲(chǔ)在其中的數(shù)據(jù)進(jìn)行動(dòng)態(tài)擴(kuò)展和收縮。因此,在聲明ArrayList對(duì)象時(shí)不需要指定其長(zhǎng)度。所有添加的數(shù)據(jù)都是對(duì)象,需要裝箱和解包。泛型列表:列表是一個(gè)命名空間系統(tǒng).集合.通用針對(duì)ArrayList中不安全類型和裝箱的缺點(diǎn),引入了泛型的概念。list類是ArrayList類的泛型等價(jià)物。它的大部分用法類似于ArrayList,因?yàn)閘ist類還繼承了IList接口。關(guān)鍵區(qū)別在于,在聲明列表集合時(shí),還需要聲明列表集合中數(shù)據(jù)的對(duì)象類型。簡(jiǎn)而言之:它們都是收藏。ArrayList類型不安全。因?yàn)樘砑拥臄?shù)據(jù)是對(duì)象類型的,所以需要對(duì)其進(jìn)行裝箱和解包,這樣效率很低。List:類型是在聲明時(shí)確定的,因此它是類型安全的,它節(jié)省了打包和解包的過(guò)程,并且比ArrayList更高效。
List和ArrayList的區(qū)別有什么區(qū)別?
列表是一個(gè)接口。ArrayList和LinkedList是兩個(gè)實(shí)現(xiàn)類。它們以不同的方式實(shí)現(xiàn)。實(shí)際上,LinkedList是真正的鏈表(如果你不知道什么是鏈表,你需要了解一些相關(guān)的數(shù)據(jù)結(jié)構(gòu),這在一兩句話中是不清楚的)。ArrayList是由array實(shí)現(xiàn)的,它不是一個(gè)真正的鏈表。當(dāng)它初始化時(shí),它不是一個(gè)真正的鏈表,等待它為數(shù)組設(shè)置一個(gè)初始容量,當(dāng)數(shù)組空間不夠時(shí),它會(huì)重建一個(gè)容量更大的數(shù)組,然后將以前的元素復(fù)制到。
ArrayList和LinkedList的本質(zhì)區(qū)別在于array和list之間的區(qū)別。請(qǐng)參考相關(guān)的數(shù)據(jù)結(jié)構(gòu)知識(shí)。
我在這里為您總結(jié)幾點(diǎn):
ArrayList:缺點(diǎn):內(nèi)存使用量大,添加和刪除元素的效率低。單元隨機(jī)存取效率高。
LinkedList:相反。
為什么是List list = new ArrayList,而不直接用ArrayList?
List是接口,ArrayList是類。
ArrayList繼承并實(shí)現(xiàn)列表。List List=new arraylist()創(chuàng)建一個(gè)arraylist對(duì)象并將其追溯到列表。此時(shí),它是一個(gè)列表對(duì)象。不能再使用ArrayList具有但list不具有的某些屬性和方法。ArrayList=new ArrayList()創(chuàng)建一個(gè)保留ArrayList所有屬性的對(duì)象。為什么通常使用list=new arraylist()而不是arraylist=new arraylist()?問(wèn)題是list有多個(gè)實(shí)現(xiàn)類,比如LinkedList或vector?,F(xiàn)在您正在使用ArrayList。也許有一天你需要切換到其他實(shí)現(xiàn)類?在這種情況下,您只需要更改這一行:List=newlinkedlist()其他使用List的代碼根本不需要更改。假設(shè)您開始使用ArrayList=new ArrayList(),您已經(jīng)做了一些更改,特別是在使用特定于ArrayList的方法和屬性時(shí)。如果沒(méi)有特殊要求,最好使用list=newlinkedlist()來(lái)促進(jìn)程序代碼的重構(gòu)。這就是面向接口編程的優(yōu)點(diǎn)