全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

什么是ArrayList?使用ArrayList集合存取元素

更新時(shí)間:2022-03-22 來(lái)源:黑馬程序員 瀏覽量:

ArrayList是List接口的一個(gè)實(shí)現(xiàn)類(lèi),它是程序中最常見(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內(nèi)部的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)是數(shù)組形式,在增加或刪除指定位置的元素時(shí),會(huì)創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作。但是,這種數(shù)組結(jié)構(gòu)允許程序通過(guò)索引的方式來(lái)訪問(wèn)元素,因此使用ArrayList集合在遍歷和查找元素時(shí)顯得非常高效。

ArrayList集合中大部分方法都是從接口Collection和List繼承過(guò)來(lái)的,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)如何使用ArrayList集合的方法來(lái)存取元素,如文件所示。

文件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("集合的長(zhǎng)度:" + list.size());
      System.out.println("第2個(gè)元素是:" + list.get(1));
   }
}
運(yùn)行結(jié)果如圖所示。

1647920471621_21.png

圖6-2運(yùn)行結(jié)果

首先通過(guò)“new ArrayList()”語(yǔ)句創(chuàng)建了一個(gè)空的ArrayList集合,接著調(diào)用add(Object o)方法向ArrayList集合中添加了4個(gè)元素,然后調(diào)用size()方法獲取集合中元素個(gè)數(shù),最后通過(guò)調(diào)用ArrayList的get(int index)方法取出指定索引位置的元素。

從圖6-2可以看出,索引位置為1的元素是集合中的第二個(gè)元素,這說(shuō)明集合和數(shù)組一樣,索引的取值是從0開(kāi)始的,最后一個(gè)索引是size-1,在訪問(wèn)元素時(shí)一定要注意索引不可超出此范圍,否則會(huì)拋出角標(biāo)越界異常IndexOutOfBoundsException。

注意:1.在編譯文件6-1時(shí),會(huì)得到如圖6-3所示的警告,意思是說(shuō)在使用ArrayList集合時(shí)并沒(méi)有顯示的指定集合中存儲(chǔ)什么類(lèi)型的元素,會(huì)產(chǎn)生安全隱患,這涉及到泛型安全機(jī)制的問(wèn)題。與泛型相關(guān)的知識(shí)將在后面的章節(jié)詳細(xì)講解,現(xiàn)在無(wú)需考慮。

使用ArrayList集合存取元素


2.在編寫(xiě)程序時(shí),不要忘記使用類(lèi)似于“import java.util.ArrayList;”語(yǔ)句導(dǎo)包,否則程序?qū)?huì)編譯失敗,顯示類(lèi)找不到,如錯(cuò)誤!未找到引用源。所示。要解決此問(wèn)題,只需單擊圖6-4所示錯(cuò)誤小窗口中的第一行“Import’ArrayList’(java.util)”鏈接即可,這樣Eclipse就會(huì)自動(dòng)導(dǎo)入ArrayList的包。另外在后面的案例中可能會(huì)大量的用到集合類(lèi),除了可以使用上述方式導(dǎo)入指定集合類(lèi)所在的包外,為了方便,程序中還可以統(tǒng)一使用import java.util.*;來(lái)進(jìn)行導(dǎo)包,其中*為通配符,整個(gè)語(yǔ)句的意思是將java.util包中的內(nèi)容都導(dǎo)入進(jìn)來(lái)。

使用ArrayList集合存取元素

圖6-4編譯錯(cuò)誤





分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!