Java中ArrayList類(lèi)用法詳解
基本定義
ArrayList 是 Java 中的一個(gè)動(dòng)態(tài)數(shù)組數(shù)據(jù)結(jié)構(gòu),屬于 Java 集合框架的一部分(java.util 包中的類(lèi))。它提供了一個(gè)基于數(shù)組的可變長(zhǎng)度列表,允許你在運(yùn)行時(shí)添加、刪除和訪問(wèn)元素,而不需要提前指定數(shù)組的大小。
簡(jiǎn)而言之:它是Java函數(shù)庫(kù)中數(shù)百個(gè)類(lèi)中的一個(gè),可以將它直接當(dāng)作自己的類(lèi)使用
ArrayList類(lèi)的基礎(chǔ)(部分)方法
add(Object elem):向list中加入對(duì)象參數(shù),即在 ArrayList 的末尾添加新元素
add(int index, Object elem):在index對(duì)應(yīng)的下標(biāo)中添加elem對(duì)象
remove(int index):移除對(duì)應(yīng)索引的對(duì)象
remove(Object elem):移除該對(duì)象,默認(rèn)只是移除第一個(gè)匹配的對(duì)象
contains(Object elem):檢查是否包含該對(duì)象:有的話返回"true",否則返回"false"
isEmpty():如果list中沒(méi)有元素則返回"true"
indexOf(Object elem):如果存在該對(duì)象,則返回對(duì)應(yīng)下標(biāo),如果不存在,則返回-1
size():返回ArrayList當(dāng)前的大小
get(int index):返回當(dāng)前索引參數(shù)的對(duì)象
下面來(lái)舉個(gè)例子來(lái)解釋一下ArrayList的方法使用吧:
import java.util.ArrayList;
class Egg {
}
public class testArrayList {
public static void main(String[] args) {
//1.創(chuàng)建:<括號(hào)>代表創(chuàng)建出Egg類(lèi)型的basket
//新的ArrayList對(duì)象會(huì)創(chuàng)建在堆上
ArrayList<Egg> basket = new ArrayList<Egg>();
//2.加入元素
//此ArrayList會(huì)產(chǎn)生一個(gè)"筐子"來(lái)放Egg對(duì)象
Egg s = new Egg();
basket.add(s);
//3.再加入元素
//此ArrayList會(huì)再次整一個(gè)筐子來(lái)存放Egg對(duì)象
Egg b = new Egg();
basket.add(b);
//4.查詢(xún)大小
//因?yàn)閎asket含有兩個(gè)元素,size()會(huì)返回2
int theSize = basket.size();
//5.查詢(xún)特定元素
//因?yàn)閎asket帶有s所引用的Egg對(duì)象,所以此方法會(huì)返回true
boolean isIn = basket.contains(s);
//6.查詢(xún)特定元素的位置
//b是創(chuàng)建的第二個(gè)對(duì)象,因此返回1
int idx = basket.indexOf(b);
//7.判斷集合是否為空
//因?yàn)椴皇强盏?,所以返回false
boolean empty = basket.isEmpty();
//8.刪除元素
basket.remove(s);
}
}比較ArrayList與一般數(shù)組
一般數(shù)組在創(chuàng)建時(shí)必須指定大小
但對(duì)于ArrayList來(lái)說(shuō),你只需要?jiǎng)?chuàng)建出此類(lèi)型的對(duì)象就行。它不需要指定大小,因?yàn)樗麜?huì)在加入或刪除元素時(shí)自動(dòng)調(diào)整大小。
new String[2] //指定大小
new ArrayList<String>() //不需要指定大小
存放對(duì)象給一般數(shù)組時(shí)必須指定位置
(必須要指定介于0到比length小1之間的數(shù)字)
myList[1] = b;//指定索引值
如果索引值超出了數(shù)組的限制(例如聲明大小為2的數(shù)組,然后指派索引值3),程序會(huì)在執(zhí)行期出現(xiàn)錯(cuò)誤。
使用ArrayList時(shí),你可以用add(Int, Object)這個(gè)形式來(lái)指定索引值,或者使用add(Object)的形式來(lái)給它自行管理大小。
myList.add(b);//不需指定索引值
一般數(shù)組使用特殊的語(yǔ)法
但ArrayList是個(gè)普通對(duì)象,所以不會(huì)有特殊的語(yǔ)法。
myList[1]//[方括號(hào)]是指用在數(shù)組上的特殊語(yǔ)法
在Java5.0中的ArrayList是參數(shù)化的
雖然我們說(shuō)ArrayList不想一般數(shù)組有特殊的語(yǔ)法,但是它們?cè)贘ava5.0中有比較特殊的東西-參數(shù)化類(lèi)型。
ArrayList<String> //<String>是類(lèi)型參數(shù)。這代表String的集合,就像說(shuō)ArraysList<Egg>代表Egg的集合
在Java5.0之前是無(wú)法聲明出要存放于ArrayList中元素的類(lèi)型,它只會(huì)是異質(zhì)對(duì)象的集合
總結(jié)
到此這篇關(guān)于Java中ArrayList類(lèi)用法的文章就介紹到這了,更多相關(guān)Java ArrayList類(lèi)詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA啟動(dòng)報(bào)錯(cuò)Internal?error.?Please?refer?to?https://jb.gg/i
這篇文章主要介紹了IDEA啟動(dòng)報(bào)錯(cuò)Internal?error.?Please?refer?to?https://jb.gg/ide/critical-startup-errors解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
一分鐘掌握J(rèn)ava?ElasticJob分布式定時(shí)任務(wù)
ElasticJob?是面向互聯(lián)網(wǎng)生態(tài)和海量任務(wù)的分布式調(diào)度解決方案,本文主要通過(guò)簡(jiǎn)單的示例帶大家深入了解ElasticJob分布式定時(shí)任務(wù)的相關(guān)知識(shí),需要的可以參考一下2023-05-05
Maven?Pom?文件中的隱式依賴(lài)導(dǎo)致Jar沖突問(wèn)題
這篇文章主要介紹了Maven?Pom?文件中的隱式依賴(lài)導(dǎo)致Jar沖突問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring的Bean生命周期之BeanDefinition詳解
這篇文章主要介紹了Spring的Bean生命周期之BeanDefinition詳解,在spring bean創(chuàng)建過(guò)程 依賴(lài) BeanDefinition 中的信息處理bean的生產(chǎn),BeanDefinition 是 Spring Framework 中定義 Bean 的配置元信息接口,需要的朋友可以參考下2023-12-12
maven使用systemPath方式加載本地jar的實(shí)現(xiàn)
本文介紹Maven通過(guò)systemPath加載本地第三方JAR的方法,需配置依賴(lài)和插件以確保打包和運(yùn)行,具有一定的參考價(jià)值,感興趣的可以了解一下2025-06-06
Springboot實(shí)現(xiàn)XSS漏洞過(guò)濾的示例代碼
這篇文章主要介紹了Springboot實(shí)現(xiàn)XSS漏洞過(guò)濾的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

