Java中ArrayList集合的常用方法大全
非泛型
創(chuàng)建ArrayList集合對象,可以添加任意Object子類元素至集合
//非泛型創(chuàng)建的ArrayList集合對象可以保存任何類型的值A(chǔ)rrayList 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)編譯錯(cuò)誤,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)?0list.add('str');
有參構(gòu)造
使用有參構(gòu)造方法,按照指定的容量,初始化內(nèi)部數(shù)組elementData
//內(nèi)部數(shù)組長度為38ArrayList<String> list02 = new ArrayList<String>(38); 常用方法
1.add()方法
作用:給集合添加元素;
參數(shù):①需要添加的元素②下標(biāo)位置,需要添加的元素;
返回:boolean類型值;
ArrayList<String> list = new ArrayList<String>();// 添加元素(默認(rèn)添加至集合的末尾)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ù):①需要添加的集合;②下標(biāo)位置,需要添加的集合;
返回: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');// 添加集合(默認(rèn)添加至集合的末尾)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ù)下標(biāo)獲取集合中的元素;
參數(shù):下標(biāo)位置(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()方法
作用:獲取集合中的元素個(gè)數(shù);
參數(shù):無;
返回:int類型,集合的元素個(gè)數(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'));//輸出:trueSystem.out.println(list.contains('str5'));//輸出:false
7.indexof()方法
作用:查找集合內(nèi)的元素;
參數(shù):需要查找的元素;
返回:int類型(找到返回下標(biāo),未找到返回-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'));//輸出:1System.out.println(list.indexof('str5'));//輸出:-1
8.remove()方法
作用:刪除集合內(nèi)的元素;
參數(shù):①指定下標(biāo)位置;②指定元素;
返回:①指定下標(biāo)位置刪除返回刪除的元素值;②指定元素輸出返回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));//輸出:str2System.out.println(list.remove('str4'));//輸出:true
9.set()方法
作用:將指定下標(biāo)位置改為指定元素;
參數(shù):指定下標(biāo),指定元素;
返回:修改前的原值;
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'));//輸出:str2System.out.println(list);//輸出:[str1, str5, str3, str4]
10.toArray()方法
作用:將集合轉(zhuǎn)換為數(shù)組;
參數(shù):①無參;②其他類型的數(shù)組對象;
返回:①Object[ ];②指定類型的數(shù)組;
// 快速創(chuàng)建并初始化一個(gè)List集合// 該集合對象類型為Arrays類的內(nèi)部類ArrayListList<String> list1 = Arrays.asList('str1', 'str2', 'str3', 'str4', 'str5', 'str6');// 將集合內(nèi)所有元素添加至heroList02ArrayList<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ù):開始下標(biāo), 結(jié)束下標(biāo);
返回:子集合;
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三個(gè)元素,區(qū)間[0,3)List<String> result= list2.subList(0, 3);System.out.println(result);//輸出:[str1, str2, str3]
12.sort()方法
作用:對集合中的元素排序;
參數(shù):Comparator比較器接口實(shí)現(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>()采用了匿名類對象,直接實(shí)現(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)遍歷集合listfor (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)獲取當(dāng)前集合對象的迭代器對象Iterator<String> it = list.iterator();// (2)使用迭代器遍歷每個(gè)元素while (it.hasNext()) { //判斷集合是否有下一個(gè)元素 //輸出:str1,str2,str3,str4,str5,str6,System.out.print(it.next()+',');//獲取集合的下一個(gè)元素}System.out.println('-----------------------------------');// 方式3 : foreach遍歷listfor(String str : list) {//輸出:str1,str2,str3,str4,str5,str6,System.out.print(str+',');}
以上是ArrayList的常用方法,僅個(gè)人觀點(diǎn),若有不對的地方,希望各位大佬多多指正。
總結(jié)到此這篇關(guān)于Java中ArrayList集合的文章就介紹到這了,更多相關(guān)Java ArrayList集合常用方法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. WML語言的基本情況2. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能3. 利用CSS3新特性創(chuàng)建透明邊框三角4. ajax post下載flask文件流以及中文文件名問題5. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程6. 如何通過vscode運(yùn)行調(diào)試javascript代碼7. ASP中解決“對象關(guān)閉時(shí),不允許操作。”的詭異問題……8. 詳解盒子端CSS動(dòng)畫性能提升9. ASP.NET泛型三之使用協(xié)變和逆變實(shí)現(xiàn)類型轉(zhuǎn)換10. 利用CSS制作3D動(dòng)畫
