更新時間:2022-03-22 來源:黑馬程序員 瀏覽量:
ArrayList是List接口的一個實(shí)現(xiàn)類,它是程序中最常見的一種集合。在ArrayList內(nèi)部封裝了一個長度可變的數(shù)組對象,當(dāng)存入的元素超過數(shù)組長度時,ArrayList會在內(nèi)存中分配一個更大的數(shù)組來存儲這些元素,因此可以將ArrayList集合看作一個長度可變的數(shù)組。
正是由于ArrayList內(nèi)部的數(shù)據(jù)存儲結(jié)構(gòu)是數(shù)組形式,在增加或刪除指定位置的元素時,會創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作。但是,這種數(shù)組結(jié)構(gòu)允許程序通過索引的方式來訪問元素,因此使用ArrayList集合在遍歷和查找元素時顯得非常高效。
ArrayList集合中大部分方法都是從接口Collection和List繼承過來的,接下來通過一個案例來學(xué)習(xí)如何使用ArrayList集合的方法來存取元素,如文件所示。
文件6-1Example01.java
import java.util.ArrayList; public class Example01 { public static void main(String[] args) { // 創(chuàng)建ArrayList集合 ArrayList list = new ArrayList(); // 向集合中添加元素 list.add("stu1"); list.add("stu2"); list.add("stu3"); list.add("stu4"); System.out.println("集合的長度:" + list.size()); System.out.println("第2個元素是:" + list.get(1)); } }運(yùn)行結(jié)果如圖所示。
圖6-2運(yùn)行結(jié)果
首先通過“new ArrayList()”語句創(chuàng)建了一個空的ArrayList集合,接著調(diào)用add(Object o)方法向ArrayList集合中添加了4個元素,然后調(diào)用size()方法獲取集合中元素個數(shù),最后通過調(diào)用ArrayList的get(int index)方法取出指定索引位置的元素。
從圖6-2可以看出,索引位置為1的元素是集合中的第二個元素,這說明集合和數(shù)組一樣,索引的取值是從0開始的,最后一個索引是size-1,在訪問元素時一定要注意索引不可超出此范圍,否則會拋出角標(biāo)越界異常IndexOutOfBoundsException。
注意:1.在編譯文件6-1時,會得到如圖6-3所示的警告,意思是說在使用ArrayList集合時并沒有顯示的指定集合中存儲什么類型的元素,會產(chǎn)生安全隱患,這涉及到泛型安全機(jī)制的問題。與泛型相關(guān)的知識將在后面的章節(jié)詳細(xì)講解,現(xiàn)在無需考慮。
2.在編寫程序時,不要忘記使用類似于“import java.util.ArrayList;”語句導(dǎo)包,否則程序?qū)幾g失敗,顯示類找不到,如錯誤!未找到引用源。所示。要解決此問題,只需單擊圖6-4所示錯誤小窗口中的第一行“Import’ArrayList’(java.util)”鏈接即可,這樣Eclipse就會自動導(dǎo)入ArrayList的包。另外在后面的案例中可能會大量的用到集合類,除了可以使用上述方式導(dǎo)入指定集合類所在的包外,為了方便,程序中還可以統(tǒng)一使用import java.util.*;來進(jìn)行導(dǎo)包,其中*為通配符,整個語句的意思是將java.util包中的內(nèi)容都導(dǎo)入進(jìn)來。
圖6-4編譯錯誤