Java中ArrayList集合的常用方法大全
ArrayList集合的創(chuàng)建
非泛型
創(chuàng)建ArrayList集合對象,可以添加任意Object子類元素至集合
//非泛型創(chuàng)建的ArrayList集合對象可以保存任何類型的值 ArrayList list = new ArrayList(); list.add("str");//存入String類型數(shù)據(jù) list.add(23);//存入int類型數(shù)據(jù) list.add(2.5);//存入double類型數(shù)據(jù) list.add('c');//存入char類型數(shù)據(jù)
泛型
采用泛型創(chuàng)建ArrayList集合對象,只能添加泛型數(shù)據(jù)至集合
//泛型創(chuàng)建的ArrayList集合對象,只能保存泛型數(shù)據(jù) ArrayList<String> list1 = new ArrayList<String>(); //后面的泛型類型可以省略 ArrayList<String> list2 = new ArrayList<>(); list1.add("str1"); list1.add("str2"); //list1.add(23); 出現(xiàn)編譯錯誤,list1只能存放String類型數(shù)據(jù)
ArrayList集合的初始化
無參構(gòu)造
使用無參構(gòu)造方法,按照空數(shù)組的方式初始化內(nèi)部數(shù)組elementData
//內(nèi)部數(shù)組為空 ArrayList<String> list = new ArrayList<String>(); //調(diào)用add()方法,空數(shù)組的長度變?yōu)?0 list.add("str");
有參構(gòu)造
使用有參構(gòu)造方法,按照指定的容量,初始化內(nèi)部數(shù)組elementData
//內(nèi)部數(shù)組長度為38 ArrayList<String> list02 = new ArrayList<String>(38);
常用方法
1.add()方法
作用:給集合添加元素;
參數(shù):①需要添加的元素②下標位置,需要添加的元素;
返回:boolean類型值;
ArrayList<String> list = new ArrayList<String>(); // 添加元素(默認添加至集合的末尾) list.add("str1"); list.add("str2"); System.out.println(list);//輸出:[str1, str2] // 添加元素至指定位置(list"頭部"添加元素str3) list.add(0,"str3"); System.out.println(list);//輸出:[str3, str1, str2]
2.addAll()方法
作用:給集合添加集合;
參數(shù):①需要添加的集合;②下標位置,需要添加的集合;
返回:boolean類型值;
ArrayList<String> list1 = new ArrayList<String>(); list1.add("str1"); list1.add("str2"); ArrayList<String> list2 = new ArrayList<String>(); list2.add("str01"); list2.add("str02"); // 添加集合(默認添加至集合的末尾) list1.addAll(list2); System.out.println(list1);//輸出:[str1, str2, str01, str02] // 添加集合至指定位置(list1"頭部"添加集合list2) list1.add(0,list2); //輸出:[str01, str02, str1, str2, str01, str02] System.out.println(list1);
3.get()方法
作用:根據(jù)下標獲取集合中的元素;
參數(shù):下標位置(0——(list.size()-1)之間);
返回:集合中的元素;
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); String str=list.get(2); System.out.println(str);//輸出:str3
4.size()方法
作用:獲取集合中的元素個數(shù);
參數(shù):無;
返回:int類型,集合的元素個數(shù);
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); int n=list.size(); System.out.println(n);//輸出:4
5.clear()方法
作用:清除集合中的所有元素;
參數(shù):無;
返回:無;
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); System.out.println(list);//輸出:[str1, str2] list.clear(); System.out.println(list);//輸出:[]
6.contains()方法
作用:判斷集合內(nèi)是否存在指定元素;
參數(shù):指定元素;
返回:boolean(true表示存在,false表示不存在);
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); System.out.println(list.contains("str2"));//輸出:true System.out.println(list.contains("str5"));//輸出:false
7.indexof()方法
作用:查找集合內(nèi)的元素;
參數(shù):需要查找的元素;
返回:int類型(找到返回下標,未找到返回-1);
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); System.out.println(list.indexof("str2"));//輸出:1 System.out.println(list.indexof("str5"));//輸出:-1
8.remove()方法
作用:刪除集合內(nèi)的元素;
參數(shù):①指定下標位置;②指定元素;
返回:①指定下標位置刪除返回刪除的元素值;②指定元素輸出返回ture;
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); System.out.println(list.remove(1));//輸出:str2 System.out.println(list.remove("str4"));//輸出:true
9.set()方法
作用:將指定下標位置改為指定元素;
參數(shù):指定下標,指定元素;
返回:修改前的原值;
ArrayList<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); list.add("str3"); list.add("str4"); System.out.println(list);//輸出:[str1, str2, str3, str4] System.out.println(list.set(1,"str5"));//輸出:str2 System.out.println(list);//輸出:[str1, str5, str3, str4]
10.toArray()方法
作用:將集合轉(zhuǎn)換為數(shù)組;
參數(shù):①無參;②其他類型的數(shù)組對象;
返回:①Object[ ];②指定類型的數(shù)組;
// 快速創(chuàng)建并初始化一個List集合 // 該集合對象類型為Arrays類的內(nèi)部類ArrayList List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6"); // 將集合內(nèi)所有元素添加至heroList02 ArrayList<String> list2 = new ArrayList<String>(); list2.addAll(list1); Object[] array01 = list2.toArray(); //轉(zhuǎn)換成Object數(shù)組 String[] array02 = list2.toArray(new String[0]); // 轉(zhuǎn)換成String類型數(shù)組
11.subList()方法
作用:在原集合中截取子集合;
參數(shù):開始下標, 結(jié)束下標;
返回:子集合;
List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6"); ArrayList<String> list2 = new ArrayList<String>(); list2.addAll(list1); //截取(0,3),即為0,1,2三個元素,區(qū)間[0,3) List<String> result= list2.subList(0, 3); System.out.println(result);//輸出:[str1, str2, str3]
12.sort()方法
作用:對集合中的元素排序;
參數(shù):Comparator比較器接口實現(xiàn)類對象;
返回:無;
List<String> list1 = Arrays.asList("str8", "str4", "str6", "str3", "str2", "str9"); ArrayList<String> list = new ArrayList<String>(); list.addAll(list1); //new Comparator<String>()采用了匿名類對象,直接實現(xiàn)compare()方法 list.sort(new Comparator<String>() { public int compare(String o1, String o2) { return o1.compareTo(o2); } }); System.out.println(list);//輸出:[str2, str3, str4, str6, str8, str9]
ArrayList集合的遍歷
List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6"); ArrayList<String> list = new ArrayList<String>(); list.addAll(list1); // 方式1:使用for循環(huán)遍歷集合list for (int i = 0, len = list.size(); i < len; i++) { //輸出:str1,str2,str3,str4,str5,str6, System.out.print(list.get(i)+","); } System.out.println("-----------------------------------"); // 方式2:使用迭代器遍歷集合list // (1)獲取當前集合對象的迭代器對象 Iterator<String> it = list.iterator(); // (2)使用迭代器遍歷每個元素 while (it.hasNext()) { //判斷集合是否有下一個元素 //輸出:str1,str2,str3,str4,str5,str6, System.out.print(it.next()+",");//獲取集合的下一個元素 } System.out.println("-----------------------------------"); // 方式3 : foreach遍歷list for(String str : list) { //輸出:str1,str2,str3,str4,str5,str6, System.out.print(str+","); }
以上是ArrayList的常用方法,僅個人觀點,若有不對的地方,希望各位大佬多多指正。
總結(jié)
到此這篇關(guān)于Java中ArrayList集合的文章就介紹到這了,更多相關(guān)Java ArrayList集合常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解在idea 中使用Mybatis Generator逆向工程生成代碼
這篇文章主要介紹了在idea 中使用Mybatis Generator逆向工程生成代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Spring Bean生命周期之BeanDefinition的合并過程詳解
這篇文章主要為大家詳細介紹了Spring Bean生命周期之BeanDefinition的合并過程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03關(guān)于spring5的那些事:@Indexed 解密
這篇文章主要介紹了關(guān)于spring5的那些事:@Indexed 解密,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java org.w3c.dom.Document 類方法引用報錯
這篇文章主要介紹了Java org.w3c.dom.Document 類方法引用報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08利用Java簡單實現(xiàn)一個代碼行數(shù)統(tǒng)計器方法實例
這篇文章主要給大家介紹了關(guān)于如何利用Java簡單實現(xiàn)一個代碼行數(shù)統(tǒng)計器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11ThreadPoolExecutor線程池原理及其execute方法(詳解)
下面小編就為大家?guī)硪黄猅hreadPoolExecutor線程池原理及其execute方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06java用靜態(tài)工廠代替構(gòu)造函數(shù)使用方法和優(yōu)缺點
這篇文章主要介紹了java用靜態(tài)工廠代替構(gòu)造函數(shù)使用方法和優(yōu)缺點,需要的朋友可以參考下2014-02-02Nacos客戶端配置中心緩存動態(tài)更新實現(xiàn)源碼
這篇文章主要為大家介紹了Nacos客戶端配置中心緩存動態(tài)更新實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-03-03