2022-12-09
集合 arraylist 元素 數(shù)組
ArrayList集合介紹
ArrayList是List接口的一個(gè)實(shí)現(xiàn)類,它是程序中最常見(jiàn)的一種集合。在ArrayList內(nèi)部封裝了一個(gè)長(zhǎng)度可變的數(shù)組對(duì)象,當(dāng)存入的元素超過(guò)數(shù)組長(zhǎng)度時(shí),ArrayList會(huì)在內(nèi)存中分配一個(gè)更大的數(shù)組來(lái)存儲(chǔ)這些元素,因此可以將ArrayList集合看作一個(gè)長(zhǎng)度可變的數(shù)組。
ArrayList集合中大部分方法都是從父類Collection和List繼承過(guò)來(lái)的,其中add()方法和get()方法分別用于實(shí)現(xiàn)元素的存入和取出。接下來(lái)通過(guò)一個(gè)案例學(xué)習(xí)ArrayList集合的元素存取。
|
從運(yùn)行結(jié)果可以看出,索引位置為1的元素是集合中的第二個(gè)元素,這就說(shuō)明集合和數(shù)組一樣,索引的取值范圍是從0開(kāi)始的,最后一個(gè)索引是size-1.在訪問(wèn)元素時(shí)一定要注意索引不可超出此范圍,否則會(huì)拋出角標(biāo)越界異常IndexOutOfBoundsException。
由于ArrayList集合的底層是使用一個(gè)數(shù)組來(lái)保存元素,在增加或刪除指定位置的元素時(shí),會(huì)導(dǎo)致創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作。因?yàn)檫@種數(shù)組的結(jié)構(gòu)允許程序通過(guò)索引的方式來(lái)訪問(wèn)元素,所以使用ArrayList集合查找元素很便捷。
泛型安全機(jī)制問(wèn)題
在IntelliJ IDEA中編譯上述程序時(shí),會(huì)得到警告信息,提示在使用ArrayList集合時(shí)并沒(méi)有明確指定集合中存儲(chǔ)什么類型的元素,會(huì)產(chǎn)生安全隱患,這涉及到泛型安全機(jī)制的問(wèn)題。警告信息如下所示。
|
在編寫(xiě)程序時(shí),不要忘記使用“import java.util.ArrayList;”語(yǔ)句導(dǎo)包,否則IDEA會(huì)提示類型不能解決的錯(cuò)誤信息,將鼠標(biāo)移動(dòng)到報(bào)出錯(cuò)誤的ArrayList()上,錯(cuò)誤顯示如下所示:
|
要解決此問(wèn)題,只需單擊圖中錯(cuò)誤顯示小窗口中Import class的鏈接,這樣IntelliJ IDEA就會(huì)自動(dòng)導(dǎo)入ArrayList的包。在后面的案例中會(huì)大量地用到集合類,為了方便,程序中可以使用import java.util.*;來(lái)進(jìn)行導(dǎo)包,其中*為通配符,整個(gè)語(yǔ)句的意思是將java.util包中的內(nèi)容都導(dǎo)入進(jìn)來(lái)。
開(kāi)班時(shí)間:2021-04-12(深圳)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-17(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-03-22(杭州)
開(kāi)班盛況開(kāi)班時(shí)間:2021-04-26(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-10(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-02-22(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2020-09-21(上海)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2019-07-22(北京)
開(kāi)班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)