一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java ArrayList集合詳解(Java動態數組)

Java ArrayList集合詳解(Java動態數組)

2022-03-02 00:59二師兄想吃肉 Java教程

這篇文章主要介紹了Java ArrayList集合詳解(Java動態數組),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 香蕉久久ac一区二区三区 | 精品亚洲视频在线观看 | 黑人艹逼| 日韩综合第一页 | 欧美日韩精品一区二区三区视频在线 | 72张让男人一看就硬的图片 | 无码AV精品一区二区三区 | 狠狠插综合网 | 亚洲国产高清一区二区三区 | 精品久久久久中文字幕日本 | 精品欧美一区二区三区四区 | 男人天堂网www | 免费片在线观看高清 | 国产精品自拍一区 | 国产精品人人视频 | 亚洲 日本 天堂 国产 在线 | 波多野结衣两女调教 | 性bbbbwwbbbb| 日韩在线视频免费不卡一区 | 天天色综合色 | 日产精品视频 | 亚洲第一区二区快射影院 | 无人在线观看免费高清视频播放 | 免费观看在线 | 青青色在线观看 | 二次元美女挤奶漫画 | 国产在线视频色综合 | 性欧美高清理论片 | 日本人泡妞xxxxxx69 | 国产午夜视频在线观看网站 | 亚洲欧美专区 | 法国老妇性xx在线播放 | 男神插曲女生动漫完整版动漫 | 天天操婷婷 | 国产特黄一级一片免费 | yin乱被cao系列| 十六一下岁女子毛片免费 | 久久亚洲伊人 | 性派对videos18party| 国产未成女年一区二区 | 久久精品亚洲牛牛影视 |