一、ArrayList集合的概述和基本使用
1.概述
ArrayList是集合的一種實現,Collection是所有集合類的父類。
由于數組在運行期間的長度無法改變,所以有了ArrayList集合。
2.基本使用
創建ArrayList集合
1
2
3
|
import java.util.ArrayList; //不要忘記導包 //<E>代表泛型,E可以定義為所有的引用類型,例如String、類等 ArrayList<E> list = new ArrayList<>(); |
將其它類型的集合轉為ArrayList
1
|
ArrayList<String> setList = new ArrayList<>( new HashSet()) |
常用的方法
(1)添加數據 - add()
1
2
|
ArrayList<String> list = new ArrayList<>(); list.add( "csdn" ); |
(2)獲取數據 - get()
1
|
list.get(i); //i為集合的元素索引 |
(3)刪除數據 - remove()
1
|
list.remove(i); //i為集合的元素索引 |
(4)獲取集合長度 - size()
1
2
|
int l = list.size(); System.out.println( "集合的長度是:" +l); |
二、ArrayList集合的詳細介紹
1.定義一個ArrayList集合
(1)語法格式
1
|
ArrayList<E> list = new ArrayList<>(); |
(2)解讀
<E>代表泛型,代表集合里裝的類型
泛型只能是引用類型,不能是基本類型
對于ArrayList集合,直接打印的結果并不是地址值,而是內容,如果是空則打印 []
從jdk1.7開始右側尖括號內部可以不寫內容
2.ArrayList集合常用的方法
定義集合
定義一個泛型為String的ArrayList集合
1
2
|
ArrayList<String> list = new ArrayList<>(); System.out.println(list); //打印結果為:[] |
添加元素
public boolean add(E e):向集合中添加元素,類型與泛型一致
1
2
3
4
5
6
|
//只能添加字符串類型,其他類型會報錯 list.add( "CSDN" ); list.add( "aaaa" ); list.add( "bbbb" ); System.out.println(list); //打印集合結果為:[CSDN, aaaa, bbbb] |
通過ArrayList類的可以看出add方法有一個布爾類型的返回值,可以用于返回添加數據是否成功。
1
2
|
boolean res = list.add( "ssss" ); System.out.println( "添加是否成功" +res); |
對于ArrayList集合來說,使用add方法一定會添加成功(其它集合不一定),所以可以不使用add方法的返回值。
獲取元素
public E get(int index):從集合中獲取元素,參數index代表元素索引編號。
1
2
3
4
|
//獲取集合的第 1 個元素 String strAdd = list.get( 0 ); System.out.println(Str); //結果為:CSDN //根據添加順序,第 0 號元素應為 “CSDN” |
get方法有一個與集合定義時對應的泛型的返回值,接收數據時應注意數據類型。
刪除元素
public E remove(int index):從集合中刪除元素,參數index代表元素索引編號。
1
2
3
|
//刪除集合的第 3 個元素 String strRemove = list.remove( 2 ); System.out.println( "被刪除的是:" + str); |
remove方法有一個與集合定義時對應的泛型的返回值,在執行刪除操作后可以將數據接收,查看被刪除的數據。
獲取集合長度
public int size():獲取集合長度
1
2
|
int l = list.size(); System.out.println( "集合的長度是:" +l); |
3.將"類"存入ArrayList集合
(1)首先定義一個Student的標準類
1
2
3
4
5
6
7
8
9
10
|
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)創建集合存入"類"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.ArrayList; public class Test { public static void main(String[] args) { //創建集合 ArrayList<Studentn> list = new ArrayList<>(); //創建要存儲的對象 Student s1 = new Student( "張三" , 17 ); Student s2 = new Student( "李四" , 18 ); //將對象信息存入集合 list.add(s1); list.add(s2); //使用匿名對象的方式存入也可以,因為這個對象只會被使用一次 list.add( new Student( "王五" , 19 )); //直接打印集合,會顯示為對象的內存地址值 System.out.println(list); //因此要想取出數據,必須再次創建對象接收數據 Student p11 = list.get( 0 ); System.out.println( "姓名:" +p11.getName()+ ",年齡:" +p11.getAge()); } |
4.遍歷ArrayList集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.ArrayList; /* 遍歷ArrayList集合 */ public class ArrayListEach { public static void main(String[] args) { //創建集合對象 ArrayList<String> list = new ArrayList<>(); //添加數據 list.add( "aaaa" ); list.add( "bbbb" ); list.add( "cccc" ); //遍歷集合 for ( int i = 0 ; i < list.size(); i++) { System.out.println(list.get(i)); } } } |
5.將基本數據類型存入ArrayList集合
如果希望向ArrayList集合里放基本數據類型,必須使用基本類型對應的包裝類。
基本類型對應的包裝類如下:
基本類型 | 包裝類(引用類型,包裝類都位于java.lang包下) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
【tips】
除了int和char的包裝類不是首字母大寫外,其它六種基本類型的包裝類均是首字母大寫。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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 ); //取出數據 int num = list.get( 1 ); System.out.println( "取出的數據為:" +num); //結果為:取出的數據為:200 } } |
6.ArrayList作為方法的參數
案例分析:
1.ArrayList作為參數
2.使用"{ }“作為開結尾,使用”、"分隔每個元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.ArrayList; public class ArrayListParam { public static void main(String[] args) { //創建集合 ArrayList<String> list = new ArrayList<>(); list.add( "aaa" ); list.add( "bbb" ); list.add( "ccc" ); list.add( "ddd" ); //System.out.println(list); //調用方法;并將創建的集合作為參數,傳遞給方法 printArrayList(list); } //編寫打印數組的方法,并將ArrayList集合設置為方法的參數 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個數字,并篩選偶數放入小集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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 ); //向集合中添加數據 listBig.add(num); //判斷添加的數據是否為偶數,如果是,則將數據存入小集合 if (listBig.get(i)% 2 == 0 ){ listSmall.add(listBig.get(i)); } } System.out.println( "偶數一共有:" +listSmall.size()+ "個" ); //返回值為小集合 return listSmall; } } |
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/weixin_44580492/article/details/105995822