Java ArrayList集合詳解(Java動態(tài)數(shù)組)
一、ArrayList集合的概述和基本使用
1.概述
ArrayList是集合的一種實現(xiàn),Collection是所有集合類的父類。
由于數(shù)組在運行期間的長度無法改變,所以有了ArrayList集合。
2.基本使用
創(chuàng)建ArrayList集合
import java.util.ArrayList;//不要忘記導包 //<E>代表泛型,E可以定義為所有的引用類型,例如String、類等 ArrayList<E> list = new ArrayList<>();
將其它類型的集合轉(zhuǎn)為ArrayList
ArrayList<String> setList = new ArrayList<>(new HashSet())
常用的方法
(1)添加數(shù)據(jù) - add()
ArrayList<String> list = new ArrayList<>();
list.add("csdn");
(2)獲取數(shù)據(jù) - get()
list.get(i);//i為集合的元素索引
(3)刪除數(shù)據(jù) - remove()
list.remove(i);//i為集合的元素索引
(4)獲取集合長度 - size()
int l = list.size();
System.out.println("集合的長度是:"+l);
二、ArrayList集合的詳細介紹
1.定義一個ArrayList集合
(1)語法格式
ArrayList<E> list = new ArrayList<>();
(2)解讀
<E>代表泛型,代表集合里裝的類型
泛型只能是引用類型,不能是基本類型
對于ArrayList集合,直接打印的結(jié)果并不是地址值,而是內(nèi)容,如果是空則打印 []
從jdk1.7開始右側(cè)尖括號內(nèi)部可以不寫內(nèi)容
2.ArrayList集合常用的方法
定義集合
定義一個泛型為String的ArrayList集合
ArrayList<String> list = new ArrayList<>(); System.out.println(list);//打印結(jié)果為:[]
添加元素
public boolean add(E e):向集合中添加元素,類型與泛型一致
//只能添加字符串類型,其他類型會報錯
list.add("CSDN");
list.add("aaaa");
list.add("bbbb");
System.out.println(list);
//打印集合結(jié)果為:[CSDN, aaaa, bbbb]
通過ArrayList類的可以看出add方法有一個布爾類型的返回值,可以用于返回添加數(shù)據(jù)是否成功。
boolean res = list.add("ssss");
System.out.println("添加是否成功"+res);
對于ArrayList集合來說,使用add方法一定會添加成功(其它集合不一定),所以可以不使用add方法的返回值。
獲取元素
public E get(int index):從集合中獲取元素,參數(shù)index代表元素索引編號。
//獲取集合的第 1 個元素 String strAdd = list.get(0); System.out.println(Str);//結(jié)果為:CSDN //根據(jù)添加順序,第 0 號元素應為 “CSDN”
get方法有一個與集合定義時對應的泛型的返回值,接收數(shù)據(jù)時應注意數(shù)據(jù)類型。
刪除元素
public E remove(int index):從集合中刪除元素,參數(shù)index代表元素索引編號。
//刪除集合的第 3 個元素
String strRemove = list.remove(2);
System.out.println("被刪除的是:" + str);
remove方法有一個與集合定義時對應的泛型的返回值,在執(zhí)行刪除操作后可以將數(shù)據(jù)接收,查看被刪除的數(shù)據(jù)。
獲取集合長度
public int size():獲取集合長度
int l = list.size();
System.out.println("集合的長度是:"+l);
3.將"類"存入ArrayList集合
(1)首先定義一個Student的標準類
public class Student {
private String name;
private int age;
public Person() {}
public Person(String name, int age) {this.name = name;this.age = age;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
}
(2)創(chuàng)建集合存入"類"
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//創(chuàng)建集合
ArrayList<Studentn> list = new ArrayList<>();
//創(chuàng)建要存儲的對象
Student s1 = new Student("張三",17);
Student s2 = new Student("李四",18);
//將對象信息存入集合
list.add(s1);
list.add(s2);
//使用匿名對象的方式存入也可以,因為這個對象只會被使用一次
list.add(new Student("王五",19));
//直接打印集合,會顯示為對象的內(nèi)存地址值
System.out.println(list);
//因此要想取出數(shù)據(jù),必須再次創(chuàng)建對象接收數(shù)據(jù)
Student p11 = list.get(0);
System.out.println("姓名:"+p11.getName()+",年齡:"+p11.getAge());
}
4.遍歷ArrayList集合
import java.util.ArrayList;
/*
遍歷ArrayList集合
*/
public class ArrayListEach {
public static void main(String[] args) {
//創(chuàng)建集合對象
ArrayList<String> list = new ArrayList<>();
//添加數(shù)據(jù)
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
//遍歷集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
5.將基本數(shù)據(jù)類型存入ArrayList集合
如果希望向ArrayList集合里放基本數(shù)據(jù)類型,必須使用基本類型對應的包裝類。
基本類型對應的包裝類如下:
| 基本類型 | 包裝類(引用類型,包裝類都位于java.lang包下) |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
【tips】
除了int和char的包裝類不是首字母大寫外,其它六種基本類型的包裝類均是首字母大寫。
import java.util.ArrayList;
public class ArrayListBasic {
public static void main(String[] args) {
//從jdk1.5開始可以自動裝箱,自動拆箱
//基本類型 --> 包裝類型 裝箱
//包裝類型 --> 基本類型 拆箱
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
list.add(300);
//取出數(shù)據(jù)
int num = list.get(1);
System.out.println("取出的數(shù)據(jù)為:"+num);//結(jié)果為:取出的數(shù)據(jù)為:200
}
}
6.ArrayList作為方法的參數(shù)
案例分析:
1.ArrayList作為參數(shù)
2.使用"{ }“作為開結(jié)尾,使用”、"分隔每個元素
import java.util.ArrayList;
public class ArrayListParam {
public static void main(String[] args) {
//創(chuàng)建集合
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//System.out.println(list);
//調(diào)用方法;并將創(chuàng)建的集合作為參數(shù),傳遞給方法
printArrayList(list);
}
//編寫打印數(shù)組的方法,并將ArrayList集合設置為方法的參數(shù)
public static void printArrayList(ArrayList list){
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
if(i == list.size()-1){
System.out.print(list.get(i));
System.out.print("}");
}else {
System.out.print(list.get(i)+"、");
}
}
}
}
7.ArrayList作為方法的返回值
案例分析:
1.使用ArrayList集合作為方法的返回值
2.使用大集合存放20個數(shù)字,并篩選偶數(shù)放入小集合
import java.util.ArrayList;
import java.util.Random;
public class ArrayListReturn {
public static void main(String[] args) {
ArrayList<Integer> list = returnArrayList();
System.out.println(list);
}
//定義需求方法,并將返回值類型設置為ArrayList集合
public static ArrayList<Integer> returnArrayList(){
Random r = new Random();
//定義大集合
ArrayList<Integer> listBig = new ArrayList<>();
//定義小集合
ArrayList<Integer> listSmall = new ArrayList<>();
for (int i = 0; i < 20; i++) {
int num = r.nextInt(10);
//向集合中添加數(shù)據(jù)
listBig.add(num);
//判斷添加的數(shù)據(jù)是否為偶數(shù),如果是,則將數(shù)據(jù)存入小集合
if(listBig.get(i)%2 == 0){
listSmall.add(listBig.get(i));
}
}
System.out.println("偶數(shù)一共有:"+listSmall.size()+"個");
//返回值為小集合
return listSmall;
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot整合quartz實現(xiàn)定時任務
這篇文章主要為大家詳細介紹了SpringBoot如何整合quartz實現(xiàn)定時任務,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-10-10
Java安全 ysoserial CommonsCollections2示例分析
這篇文章主要為大家介紹了Java安全 ysoserial CommonsCollections2示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
SpringBoot通過配置Swagger權限解決Swagger未授權訪問漏洞問題
這篇文章主要介紹了SpringBoot通過配置Swagger權限解決Swagger未授權訪問漏洞問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
簡單介紹區(qū)分applet和application的方法
applet和application都是Java語言編寫出來的應用程序,本文簡單介紹了二者的不同之處,需要的朋友可以參考下2017-09-09
SpringBoot依賴和代碼分開打包的實現(xiàn)步驟
本文主要介紹了SpringBoot依賴和代碼分開打包的實現(xiàn)步驟,,這種方法將依賴和代碼分開打包,一般更新只有代碼修改,Pom文件是不會經(jīng)常改動的,感興趣的可以了解一下2023-10-10
使用Springboot打成jar包thymeleaf的問題
這篇文章主要介紹了使用Springboot打成jar包thymeleaf的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
springboot vue組件開發(fā)實現(xiàn)接口斷言功能
這篇文章主要為大家介紹了springboot+vue組件開發(fā)實現(xiàn)接口斷言功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

