最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java ArrayList集合詳解(Java動(dòng)態(tài)數(shù)組)

 更新時(shí)間:2021年10月27日 11:01:47   作者:二師兄想吃肉  
這篇文章主要介紹了Java ArrayList集合詳解(Java動(dòng)態(tài)數(shù)組),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、ArrayList集合的概述和基本使用

1.概述

ArrayList是集合的一種實(shí)現(xiàn),Collection是所有集合類(lèi)的父類(lèi)。

由于數(shù)組在運(yùn)行期間的長(zhǎng)度無(wú)法改變,所以有了ArrayList集合。

2.基本使用

創(chuàng)建ArrayList集合

import java.util.ArrayList;//不要忘記導(dǎo)包
//<E>代表泛型,E可以定義為所有的引用類(lèi)型,例如String、類(lèi)等
ArrayList<E> list = new ArrayList<>();

將其它類(lèi)型的集合轉(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)獲取集合長(zhǎng)度 - size()

int l = list.size();
System.out.println("集合的長(zhǎng)度是:"+l);

二、ArrayList集合的詳細(xì)介紹

1.定義一個(gè)ArrayList集合

(1)語(yǔ)法格式

ArrayList<E> list = new ArrayList<>();

(2)解讀

<E>代表泛型,代表集合里裝的類(lèi)型

泛型只能是引用類(lèi)型,不能是基本類(lèi)型

對(duì)于ArrayList集合,直接打印的結(jié)果并不是地址值,而是內(nèi)容,如果是空則打印 []

從jdk1.7開(kāi)始右側(cè)尖括號(hào)內(nèi)部可以不寫(xiě)內(nèi)容

2.ArrayList集合常用的方法

定義集合

定義一個(gè)泛型為String的ArrayList集合

ArrayList<String> list = new ArrayList<>();
System.out.println(list);//打印結(jié)果為:[]

添加元素

public boolean add(E e):向集合中添加元素,類(lèi)型與泛型一致

//只能添加字符串類(lèi)型,其他類(lèi)型會(huì)報(bào)錯(cuò)
list.add("CSDN");
list.add("aaaa");
list.add("bbbb");
System.out.println(list);
//打印集合結(jié)果為:[CSDN, aaaa, bbbb]

通過(guò)ArrayList類(lèi)的可以看出add方法有一個(gè)布爾類(lèi)型的返回值,可以用于返回添加數(shù)據(jù)是否成功。

boolean res = list.add("ssss");
System.out.println("添加是否成功"+res);

對(duì)于ArrayList集合來(lái)說(shuō),使用add方法一定會(huì)添加成功(其它集合不一定),所以可以不使用add方法的返回值。

獲取元素

public E get(int index):從集合中獲取元素,參數(shù)index代表元素索引編號(hào)。

//獲取集合的第 1 個(gè)元素
String strAdd = list.get(0);
System.out.println(Str);//結(jié)果為:CSDN
//根據(jù)添加順序,第 0 號(hào)元素應(yīng)為 “CSDN”

get方法有一個(gè)與集合定義時(shí)對(duì)應(yīng)的泛型的返回值,接收數(shù)據(jù)時(shí)應(yīng)注意數(shù)據(jù)類(lèi)型。

刪除元素

public E remove(int index):從集合中刪除元素,參數(shù)index代表元素索引編號(hào)。

//刪除集合的第 3 個(gè)元素
String strRemove = list.remove(2);
System.out.println("被刪除的是:" + str);

remove方法有一個(gè)與集合定義時(shí)對(duì)應(yīng)的泛型的返回值,在執(zhí)行刪除操作后可以將數(shù)據(jù)接收,查看被刪除的數(shù)據(jù)。

獲取集合長(zhǎng)度

public int size():獲取集合長(zhǎng)度

int l = list.size();
System.out.println("集合的長(zhǎng)度是:"+l);

3.將"類(lèi)"存入ArrayList集合

(1)首先定義一個(gè)Student的標(biāo)準(zhǔn)類(lèi)

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)建集合存入"類(lèi)"

import java.util.ArrayList;
public class Test {
    public static void main(String[] args) {
        //創(chuàng)建集合
        ArrayList<Studentn> list = new ArrayList<>();
        //創(chuàng)建要存儲(chǔ)的對(duì)象
        Student s1 = new Student("張三",17);
        Student s2 = new Student("李四",18);
        //將對(duì)象信息存入集合
        list.add(s1);
        list.add(s2);
        //使用匿名對(duì)象的方式存入也可以,因?yàn)檫@個(gè)對(duì)象只會(huì)被使用一次
        list.add(new Student("王五",19));
        //直接打印集合,會(huì)顯示為對(duì)象的內(nèi)存地址值
        System.out.println(list);
        //因此要想取出數(shù)據(jù),必須再次創(chuàng)建對(duì)象接收數(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)建集合對(duì)象
        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ù)類(lèi)型存入ArrayList集合

如果希望向ArrayList集合里放基本數(shù)據(jù)類(lèi)型,必須使用基本類(lèi)型對(duì)應(yīng)的包裝類(lèi)。

基本類(lèi)型對(duì)應(yīng)的包裝類(lèi)如下:

基本類(lèi)型 包裝類(lèi)(引用類(lèi)型,包裝類(lèi)都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

【tips】

除了int和char的包裝類(lèi)不是首字母大寫(xiě)外,其它六種基本類(lèi)型的包裝類(lèi)均是首字母大寫(xiě)。

import java.util.ArrayList;
public class ArrayListBasic {
    public static void main(String[] args) {
        //從jdk1.5開(kāi)始可以自動(dòng)裝箱,自動(dòng)拆箱
        //基本類(lèi)型 --> 包裝類(lèi)型   裝箱
        //包裝類(lèi)型 --> 基本類(lèi)型   拆箱
        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.使用"{ }“作為開(kāi)結(jié)尾,使用”、"分隔每個(gè)元素

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);
    }
    
 //編寫(xiě)打印數(shù)組的方法,并將ArrayList集合設(shè)置為方法的參數(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個(gè)數(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);
    }
    
 //定義需求方法,并將返回值類(lèi)型設(shè)置為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()+"個(gè)");
        //返回值為小集合
        return listSmall;
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java利用Dijkstra算法求解拓?fù)潢P(guān)系最短路徑

    Java利用Dijkstra算法求解拓?fù)潢P(guān)系最短路徑

    迪杰斯特拉算法(Dijkstra)是由荷蘭計(jì)算機(jī)科學(xué)迪家迪杰斯特拉于1959年提出的,因此又叫狄克斯特拉算法。本文將利用迪克斯特拉(Dijkstra)算法求拓?fù)潢P(guān)系最短路徑,感興趣的可以了解一下
    2022-07-07
  • Java多線(xiàn)程 ReentrantLock互斥鎖詳解

    Java多線(xiàn)程 ReentrantLock互斥鎖詳解

    這篇文章主要介紹了Java多線(xiàn)程 ReentrantLock互斥鎖詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • springboot多模塊包掃描問(wèn)題的解決方法

    springboot多模塊包掃描問(wèn)題的解決方法

    這篇文章主要介紹了springboot多模塊包掃描問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java中編碼問(wèn)題的處理方案

    java中編碼問(wèn)題的處理方案

    這篇文章主要介紹了java中編碼問(wèn)題的處理方案的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • Springboot與vue實(shí)例講解實(shí)現(xiàn)前后端分離的人事管理系統(tǒng)

    Springboot與vue實(shí)例講解實(shí)現(xiàn)前后端分離的人事管理系統(tǒng)

    這篇文章主要介紹了如何用Java實(shí)現(xiàn)企業(yè)人事管理系統(tǒng),文中采用springboot+vue實(shí)現(xiàn)前后端分離,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-06-06
  • Java應(yīng)用程序CPU100%問(wèn)題排查優(yōu)化實(shí)戰(zhàn)

    Java應(yīng)用程序CPU100%問(wèn)題排查優(yōu)化實(shí)戰(zhàn)

    這篇文章主要介紹了如何排查和優(yōu)化Java應(yīng)用程序CPU使用率達(dá)到100%的問(wèn)題,文中通過(guò)代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2025-02-02
  • SpringBoot 集成JUnit5的詳細(xì)操作過(guò)程

    SpringBoot 集成JUnit5的詳細(xì)操作過(guò)程

    JUnit5是最新的Java單元測(cè)試框架,提供了靈活的測(cè)試支持,它由JUnit Platform、JUnit Jupiter和JUnit Vintage組成,支持不同環(huán)境下的測(cè)試運(yùn)行,SpringBoot從2.2版本開(kāi)始默認(rèn)支持JUnit5,本文介紹了SpringBoot 集成JUnit5的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Spring @Transactional注解的聲明式事務(wù)簡(jiǎn)化業(yè)務(wù)邏輯中的事務(wù)管理

    Spring @Transactional注解的聲明式事務(wù)簡(jiǎn)化業(yè)務(wù)邏輯中的事務(wù)管理

    這篇文章主要為大家介紹了Spring @Transactional注解的聲明式事務(wù)簡(jiǎn)化業(yè)務(wù)邏輯中的事務(wù)管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • IntelliJ IDEA使用tomcat和jetty配置詳解

    IntelliJ IDEA使用tomcat和jetty配置詳解

    這篇文章主要介紹了IntelliJ IDEA使用tomcat和jetty配置詳解,以便進(jìn)一步地開(kāi)發(fā)和調(diào)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Java實(shí)現(xiàn)圖片切割功能

    Java實(shí)現(xiàn)圖片切割功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片切割功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論

九江县| 新和县| 泸溪县| 北流市| 中江县| 科技| 理塘县| 卓资县| 青海省| 平阳县| 洪江市| 三原县| 岳普湖县| 桐梓县| 和田县| 洮南市| 义乌市| 于都县| 石狮市| 泰州市| 奉化市| 吉水县| 岱山县| 济宁市| 利川市| 内乡县| 黄梅县| 灌云县| 柳河县| 洪雅县| 宁明县| 松原市| 南郑县| 安远县| 伊通| 纳雍县| 南京市| 石嘴山市| 云阳县| 唐河县| 镇赉县|