Java中ArrayList類用法詳解
基本定義
ArrayList 是 Java 中的一個動態(tài)數(shù)組數(shù)據(jù)結(jié)構(gòu),屬于 Java 集合框架的一部分(java.util
包中的類)。它提供了一個基于數(shù)組的可變長度列表,允許你在運(yùn)行時添加、刪除和訪問元素,而不需要提前指定數(shù)組的大小。
簡而言之:它是Java函數(shù)庫中數(shù)百個類中的一個,可以將它直接當(dāng)作自己的類使用
ArrayList類的基礎(chǔ)(部分)方法
add(Object elem):向list中加入對象參數(shù),即在 ArrayList 的末尾添加新元素
add(int index, Object elem):在index對應(yīng)的下標(biāo)中添加elem對象
remove(int index):移除對應(yīng)索引的對象
remove(Object elem):移除該對象,默認(rèn)只是移除第一個匹配的對象
contains(Object elem):檢查是否包含該對象:有的話返回"true",否則返回"false"
isEmpty():如果list中沒有元素則返回"true"
indexOf(Object elem):如果存在該對象,則返回對應(yīng)下標(biāo),如果不存在,則返回-1
size():返回ArrayList當(dāng)前的大小
get(int index):返回當(dāng)前索引參數(shù)的對象
下面來舉個例子來解釋一下ArrayList的方法使用吧:
import java.util.ArrayList; class Egg { } public class testArrayList { public static void main(String[] args) { //1.創(chuàng)建:<括號>代表創(chuàng)建出Egg類型的basket //新的ArrayList對象會創(chuàng)建在堆上 ArrayList<Egg> basket = new ArrayList<Egg>(); //2.加入元素 //此ArrayList會產(chǎn)生一個"筐子"來放Egg對象 Egg s = new Egg(); basket.add(s); //3.再加入元素 //此ArrayList會再次整一個筐子來存放Egg對象 Egg b = new Egg(); basket.add(b); //4.查詢大小 //因?yàn)閎asket含有兩個元素,size()會返回2 int theSize = basket.size(); //5.查詢特定元素 //因?yàn)閎asket帶有s所引用的Egg對象,所以此方法會返回true boolean isIn = basket.contains(s); //6.查詢特定元素的位置 //b是創(chuàng)建的第二個對象,因此返回1 int idx = basket.indexOf(b); //7.判斷集合是否為空 //因?yàn)椴皇强盏?,所以返回false boolean empty = basket.isEmpty(); //8.刪除元素 basket.remove(s); } }
比較ArrayList與一般數(shù)組
一般數(shù)組在創(chuàng)建時必須指定大小
但對于ArrayList來說,你只需要創(chuàng)建出此類型的對象就行。它不需要指定大小,因?yàn)樗麜诩尤牖騽h除元素時自動調(diào)整大小。
new String[2] //指定大小
new ArrayList<String>() //不需要指定大小
存放對象給一般數(shù)組時必須指定位置
(必須要指定介于0到比length小1之間的數(shù)字)
myList[1] = b;//指定索引值
如果索引值超出了數(shù)組的限制(例如聲明大小為2的數(shù)組,然后指派索引值3),程序會在執(zhí)行期出現(xiàn)錯誤。
使用ArrayList時,你可以用add(Int, Object)這個形式來指定索引值,或者使用add(Object)的形式來給它自行管理大小。
myList.add(b);//不需指定索引值
一般數(shù)組使用特殊的語法
但ArrayList是個普通對象,所以不會有特殊的語法。
myList[1]//[方括號]是指用在數(shù)組上的特殊語法
在Java5.0中的ArrayList是參數(shù)化的
雖然我們說ArrayList不想一般數(shù)組有特殊的語法,但是它們在Java5.0中有比較特殊的東西-參數(shù)化類型。
ArrayList<String> //<String>是類型參數(shù)。這代表String的集合,就像說ArraysList<Egg>代表Egg的集合
在Java5.0之前是無法聲明出要存放于ArrayList中元素的類型,它只會是異質(zhì)對象的集合
總結(jié)
到此這篇關(guān)于Java中ArrayList類用法的文章就介紹到這了,更多相關(guān)Java ArrayList類詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 中application.yml與bootstrap.yml的區(qū)別
其實(shí)yml和properties文件是一樣的原理,且一個項(xiàng)目上要么yml或者properties,二選一的存在。這篇文章給大家介紹了Spring Boot 中application.yml與bootstrap.yml的區(qū)別,感興趣的朋友一起看看吧2018-04-04Java利用序列化實(shí)現(xiàn)對象深度clone的方法
這篇文章主要介紹了Java利用序列化實(shí)現(xiàn)對象深度clone的方法,實(shí)例分析了java序列化及對象克隆的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Windows下后端如何啟動SpringBoot的Jar項(xiàng)目
這篇文章主要介紹了Windows下后端如何啟動SpringBoot的Jar項(xiàng)目問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07nacos中的配置使用@Value注解獲取不到值的原因及解決方案
這篇文章主要介紹了nacos中的配置使用@Value注解獲取不到值的原因分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例
清除項(xiàng)目緩存是一個常見的操作,本文主要介紹了IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07SpringBoot實(shí)現(xiàn)無感刷新Token的項(xiàng)目實(shí)踐
token刷新是前端安全中必要的一部分,本文就來介紹一下SpringBoot實(shí)現(xiàn)無感刷新Token的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03